Amministratore Linux - Operazioni matematiche di base
Bash esegue la matematica dei numeri interi utilizzando gli operatori comuni per addizione, sottrazione, moltiplicazione e divisione.
+ | Aggiunta |
- | Sottrazione |
* | Moltiplicazione |
/ | divisione |
% | Modulo |
<< | Incremento |
- | Decremento |
Quando si eseguono operazioni matematiche, è necessario utilizzare il formato $ ((formula matematica))
Note - Quando si utilizza $() BASH, eseguirà un comando. echo $(ls)stamperà l'output di ls sul terminale. Aggiungendo un ulteriorenest () permetterà a BASH di conoscere le operazioni matematiche da eseguire.
Nel codice seguente, usiamo l'operatore pre-incremento per incrementare mentre viene stampato sul terminale.
#!/bin/bash
for i in `seq 0 10`;
do
echo $((++i))
done
Di seguito sarà l'output.
1
2
3
4
5
6
7
8
9
10
11
Altre operazioni matematiche di base -
#!/bin/bash
echo $((2+1))
echo $((2-1))
echo $((2*1))
echo $((2/1))
echo $((2%1))
Di seguito sarà l'output.
3
1
2
2
0
L'esecuzione di operazioni matematiche su numeri interi è piuttosto semplice in BASH. Lo sviluppatore deve solo ricordare che le operazioni sui numeri interi vengono sempre eseguite in $ (()), dicendo a BASH che è matematica.
Per i numeri in virgola mobile, vogliamo usare il comando bc -
#!/bin/bash
echo 1.1+2.3 | bc
Di seguito sarà l'output.
3.4
bc può diventare piuttosto complesso ma allo stesso tempo è un potente calcolatore da riga di comando.
Ecco la pagina man di bc -
bc è un linguaggio che supporta numeri di precisione arbitraria con l'esecuzione interattiva di istruzioni. Ci sono alcune somiglianze nella sintassi con il linguaggio di programmazione C. Una libreria matematica standard è disponibile tramite l'opzione della riga di comando. Se richiesto, la libreria matematica viene definita prima di elaborare qualsiasi file. bc inizia elaborando il codice da tutti i file elencati sulla riga di comando nell'ordine elencato. Dopo che tutti i file sono stati elaborati, bc legge dallo standard input. L'intero codice viene eseguito mentre viene letto. (Se un file contiene un comando per arrestare il processore, bc non leggerà mai dallo standard input.)
Questa versione di bc contiene diverse estensioni oltre alle tradizionali implementazioni di bc e alla bozza di standard POSIX. Le opzioni della riga di comando possono far sì che queste estensioni stampino un avviso o vengano rifiutate. Questo documento descrive la lingua accettata da questo processore. Le estensioni saranno identificate come tali.
Ricorda, l'uso di bc è il migliore con le operazioni in virgola mobile e la shell può gestire la matematica intera. Dovrai passare i tuoi operandi a bc . Infine, il parametro scale specifica la precisione della soluzione.
#!/bin/bash
echo 'scale = 3; 1.19*2.3' | bc -q
Di seguito sarà l'output.
2.737