Programmazione BASH

bc per eseguire operazioni aritmetiche avanzate in BASH

bc per eseguire operazioni aritmetiche avanzate in BASH
Calcolatrice di base, nota anche come "bc", è un'utilità della riga di comando di Linux utilizzata per eseguire calcoli aritmetici e algebra avanzati negli script bash. Fornisce molte diverse funzioni matematiche come seno, coseno, tangente, logaritmo naturale in bash. Bash non può eseguire operazioni aritmetiche avanzate, come confrontare i float; ecco dove bc torna utile. Il comando 'bc' era preceduto da 'dc' (Desk Calculator), un'utilità UNIX. In questo tutorial, useremo il comando 'bc' per eseguire operazioni aritmetiche avanzate advanced.

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 “ ” | avanti Cristo

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 Cristo
1.9235862420

In alternativa, possiamo usare il flag '-l' e il comando 'bc' per ottenere l'output decimale.

[email protected]:~$ echo “$num1/$num2” | bc -l
1.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 Cristo
2
[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 Cristo
1
[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 Cristo
0
[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 -l
2

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 -l
Errore 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.

I 5 migliori mouse per computer ergonomici per Linux
L'uso prolungato del computer provoca dolore al polso o alle dita?? Soffri di rigidità articolare e devi continuamente stringerti la mano? Senti un do...
Come modificare le impostazioni del mouse e del touchpad utilizzando Xinput in Linux
La maggior parte delle distribuzioni Linux viene fornita con la libreria "libinput" per impostazione predefinita per gestire gli eventi di input su un...
Rimappa i pulsanti del mouse in modo diverso per software diversi con X-Mouse Button Control
Forse hai bisogno di uno strumento che possa cambiare il controllo del tuo mouse con ogni applicazione che utilizzi. In questo caso, puoi provare un'a...