Esecuzione di operazioni aritmetiche di base
Semplici operazioni aritmetiche come addizione, sottrazione, divisione e moltiplicazione possono essere eseguite utilizzando il comando 'bc'. La sintassi per applicare semplici operatori binari in bash usando il comando 'bc' è la seguente.
[email protected]:~$ echo “In questa sezione, useremo il comando 'bc' per eseguire semplici operazioni aritmetiche.
[email protetta]:~$ num1=2.35322 5[email protected]:~$ num2=1.223353
[email protected]:~$ echo “$num1+$num2” | avanti Cristo
3.576578
[email protected]:~$ echo “$num1-$num2” | avanti Cristo
1.129872
[email protected]:~$ echo “$num1*$num2” | avanti Cristo
2.878824
[email protected]:~$ echo “$num1/$num2” | avanti Cristo
1
Nell'esempio sopra, durante l'esecuzione della divisione, abbiamo ottenuto il risultato senza punti decimali. Per ottenere il risultato fino a 'n' decimali, dobbiamo impostare il valore della scala su 'n' come mostrato nell'esempio seguente.
[email protected]:~$ echo “scale=10; $num1/$num2” | avanti Cristo1.9235862420
In alternativa, possiamo usare il flag '-l' e il comando 'bc' per ottenere l'output decimale.
[email protected]:~$ echo “$num1/$num2” | bc -l1.92358624207403750184
Il comando 'bc' può essere utilizzato anche per eseguire la divisione del modulo e calcolare la potenza di un numero negli script bash.
[email protected]:~$ echo “10%4” | avanti Cristo2
[email protected]:~$ echo “10^2” | avanti Cristo
100
Esecuzione di operazioni aritmetiche avanzate
Finora abbiamo utilizzato il comando 'bc' per eseguire alcune operazioni aritmetiche di base come addizione, sottrazione, moltiplicazione, ecc., adesso; in questa sezione, useremo il comando 'bc' per eseguire alcune operazioni aritmetiche avanzate. Discuteremo come possiamo usare operatori di confronto, operatori logici o booleani, funzioni matematiche avanzate e istruzioni condizionali in bash usando il comando 'bc'.
Operatori di confronto
Gli operatori di confronto prendono due numeri, li confrontano e poi restituiscono 1 o 0 dipende dal confronto. Se il confronto è vero, il risultato è VERO(1); altrimenti è FALSO(0). Di seguito sono riportati alcuni esempi di operatori di confronto.
- numero1 > numero2: Questo confronto tornerà 1 se la numero1 è maggiore di numero2.
- numero1 < num2: Il risultato sarà 1 se la numero1 è inferiore a numero2.
- numero1 <= num2: Il risultato sarà 1 se la numero1 è minore o uguale a numero2.
- numero1 >= numero2: Il risultato sarà 1 se la numero1 è maggiore o uguale a numero2.
- numero1 == numero2 : Il risultato sarà 1 se la numero1 è uguale a numero2.
- numero1 != numero2: Il risultato sarà 1 se entrambi i numeri non sono uguali.
Di seguito sono riportati alcuni esempi di operatori di confronto utilizzati insieme al comando 'bc'.
[email protected]:~$ echo “5==5” | avanti Cristo1
[email protetta]:~$ echo “4!=4” | avanti Cristo
0
[email protected]:~$ echo “2>5” | avanti Cristo
0
[e-mail protetta]:~$ echo “4<=4” | bc
1
Operatori booleani
Gli operatori booleani o logici vengono utilizzati nelle istruzioni condizionali per eseguire alcune decisioni logiche. Di seguito sono riportati i tre operatori logici di base.
- stat1 && stat2: Questo tornerà 1 se entrambe le affermazioni sono diverso da zero.
- stat1 || stato2: Questo tornerà 1 se una delle affermazioni è diverso da zero.
- ! statistica: Questo tornerà 1 se l'affermazione è diverso da zero e viceversa.
Gli esempi seguenti illustrano come vengono utilizzati gli operatori logici con il comando 'bc'.
[email protected]:~$ echo “-5 && 0” | avanti Cristo0
[email protected]:~$ echo “-1 || 0” | avanti Cristo
1
[email protected]:~$ echo “! 0” | avanti Cristo
1
Dichiarazioni condizionali
Le istruzioni condizionali vengono utilizzate per eseguire comandi specifici a seconda della condizione applicata. La condizione applicata nell'istruzione condizionale coinvolge operatori logici e di confronto. Di seguito è riportato l'esempio di istruzioni condizionali con il comando 'bc'.
[email protetta]:~$ a=15[email protetta]:~$ b=20
[email protected]:~$ echo ' if(a>b) print “a è maggiore” else print “b è maggiore” ' | bc -l
b è maggiore
Nell'esempio sopra, l'istruzione controlla se a è maggiore di b o no. Se a è maggiore di b, stamperà "a è maggiore"; altrimenti, stamperà "b è maggiore is."Possiamo applicare qualsiasi condizione utilizzando operatori booleani e di confronto nell'esempio precedente above.
Funzioni matematiche
Il comando 'bc' fornisce anche alcune funzioni matematiche integrate che possiamo usare senza definirle. Di seguito sono riportate alcune funzioni essenziali utilizzate con il comando 'bc' in bash.
- s(x): restituisce il seno di x dove x è in radianti
- c(x): restituisce il coseno di x dove x è in radianti
- ascia): restituisce l'arcotangente di x e il risultato è in radianti
- sqrt(x): restituisce la radice quadrata di x. Causa un errore di runtime quando x è negativo
- l(x): restituisce il log naturale di x natural.
Queste funzioni possono essere utilizzate con il comando 'bc', come mostrato negli esempi seguenti.
[e-mail protetta]:~$ pi=3.1415[email protected]:~$ echo “s($pi/2)” | bc -l
1
[email protected]:~$ echo “c($pi/2)” | bc -l
0
[email protected]:~$ echo “a(1)” | bc -l
0.7854
La radice quadrata di un numero può essere calcolata in bash usando il comando 'bc', come mostrato nella figura seguente.
[email protected]:~$ echo “sqrt(4)” | bc -l2
Durante il tentativo di calcolare la radice quadrata di un numero negativo, la shell genererà un errore di runtime.
[email protected]:~$ echo “sqrt(-2)” | bc -lErrore di runtime (func=(main), adr=4): radice quadrata di un numero negativo
Il logaritmo naturale di un numero può essere calcolato in bash usando il comando 'bc' come segue.
[email protected]:~$ echo “l(2)” | bc -l.69314718055994530941
Conclusione
Durante la scrittura di script di automazione in bash, a volte abbiamo bisogno di funzioni matematiche avanzate e operatori logici per eseguire i comandi. Il comando 'bc' fornisce molte funzioni matematiche avanzate e operatori per eseguire calcoli aritmetici di alto livello. Questo tutorial ha discusso dell'uso del comando 'bc' per eseguire operazioni aritmetiche avanzate in bash.