BC per eseguire operazioni aritmetiche avanzate in bash

BC per eseguire operazioni aritmetiche avanzate in bash
Il calcolatore di base, noto anche come "BC", è un'utilità di linea di comando Linux utilizzata per eseguire aritmetici avanzati e algebra 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 galleggianti; Ecco dove BC è utile. Il comando "BC" è stato preceduto da "DC" (calcolatore della scrivania), un'utilità UNIX. In questo tutorial, useremo il comando "BC" per eseguire operazioni aritmetiche avanzate.

Eseguire operazioni aritmetiche di base

Le semplici operazioni aritmetiche come aggiunta, sottrazione, divisione e moltiplicazione possono essere eseguite utilizzando il comando "BC". La sintassi per l'applicazione di semplici operatori binari in bash utilizzando il comando "BC" è il seguente.

ubuntu@ubuntu: ~ $ echo " "| avanti Cristo

In questa sezione, useremo il comando "BC" per eseguire semplici operazioni aritmetiche.

ubuntu@ubuntu: ~ $ num1 = 2.35322 5
ubuntu@ubuntu: ~ $ num2 = 1.223353
ubuntu@ubuntu: ~ $ echo “$ num1+$ num2” | avanti Cristo
3.576578
ubuntu@ubuntu: ~ $ echo “$ num1- $ num2” | avanti Cristo
1.129872
ubuntu@ubuntu: ~ $ echo “$ num1*$ num2” | avanti Cristo
2.878824
ubuntu@ubuntu: ~ $ echo “$ num1/$ num2” | avanti Cristo
1

Nell'esempio sopra, mentre eseguiamo la divisione, abbiamo ottenuto il risultato senza punti decimali. Per ottenere il risultato fino ai punti decimali, dobbiamo impostare il valore di scala su "n" come mostrato nell'esempio seguente.

ubuntu@ubuntu: ~ $ echo “Scala = 10; $ num1/$ num2 "| avanti Cristo
1.9235862420

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

ubuntu@ubuntu: ~ $ echo “$ num1/$ num2” | BC -L
1.92358624207403750184

Il comando "BC" può anche essere utilizzato per eseguire il modulo divisione e calcolare la potenza di un numero negli script bash.

ubuntu@ubuntu: ~ $ echo “10%4” | avanti Cristo
2
ubuntu@ubuntu: ~ $ echo “10^2” | avanti Cristo
100

Eseguire operazioni aritmetiche avanzate

Finora abbiamo usato il comando "BC" per eseguire alcune operazioni aritmetiche di base come addizione, sottrazione, moltiplicazione, ecc., Ora; In questa sezione, useremo il comando "BC" per eseguire alcune operazioni aritmetiche avanzate. Discuteremo di come possiamo utilizzare operatori di confronto, operatori logici o booleani, funzioni matematiche avanzate e dichiarazioni condizionali in bash usando il comando "BC".

Operatori di confronto

Gli operatori di confronto prendono due numeri, confrontali e poi restituiscono 1 O 0 A seconda del confronto. Se il confronto è vero, allora il risultato è Vero (1); Altrimenti, lo è Falso (0). Di seguito sono riportati alcuni esempi di operatori di confronto.

  • Num1> Num2: Questo confronto tornerà 1 se la Num1 è maggiore del Num2.
  • Num1 < num2: Il risultato sarà 1 se la Num1 è meno del Num2.
  • Num1 <= num2: Il risultato sarà 1 se la Num1 è inferiore o uguale a Num2.
  • num1> = num2: Il risultato sarà 1 se la Num1 è maggiore o uguale a Num2.
  • Num1 == Num2: Il risultato sarà 1 se la Num1 è uguale a Num2.
  • Num1 != num2: 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".

ubuntu@ubuntu: ~ $ echo “5 == 5” | avanti Cristo
1
ubuntu@ubuntu: ~ $ echo “4!= 4 "| avanti Cristo
0
ubuntu@ubuntu: ~ $ echo “2> 5” | avanti Cristo
0
ubuntu@ubuntu: ~ $ echo “4<=4” | bc
1

Operatori booleani

Gli operatori booleani o logici sono utilizzati nelle dichiarazioni condizionali per eseguire alcune decisioni logiche. Di seguito sono riportati i tre operatori logici di base.

  • Stat1 && Stat2: Questo tornerà 1 Se entrambe le dichiarazioni sono diverso da zero.
  • STAT1 || STAT2: Questo tornerà 1 Se una delle dichiarazioni è diverso da zero.
  • ! statistica: Questo tornerà 1 Se l'affermazione è diverso da zero e viceversa.

I seguenti esempi illustrano come vengono utilizzati gli operatori logici con il comando "BC".

ubuntu@ubuntu: ~ $ echo “-5 && 0” | avanti Cristo
0
ubuntu@ubuntu: ~ $ echo “-1 || 0 "| avanti Cristo
1
ubuntu@ubuntu: ~ $ echo "! 0 "| avanti Cristo
1

Dichiarazioni condizionali

Le dichiarazioni condizionali vengono utilizzate per eseguire comandi specifici a seconda della condizione applicata. La condizione applicata nell'istruzione condizionale prevede operatori logici e di confronto. Di seguito è riportato l'esempio delle dichiarazioni condizionali con il comando "BC".

ubuntu@ubuntu: ~ $ a = 15
ubuntu@ubuntu: ~ $ b = 20
ubuntu@ubuntu: ~ $ echo 'if (a> b) stampare "a è maggiore" else la stampa "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."Possiamo applicare qualsiasi condizione utilizzando operatori booleani e di confronto nell'esempio sopra.

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): ritorna arctangent di x e il risultato è in radia
  • sqrt (x): Restituisce la radice quadrata di x. Provoca un errore di runtime quando x è negativo
  • l (x): Restituisce il registro naturale di X.

Queste funzioni possono essere utilizzate con il comando "BC", come mostrato nei seguenti esempi.

ubuntu@ubuntu: ~ $ pi = 3.1415
ubuntu@ubuntu: ~ $ echo “s ($ pi/2)” | BC -L
1
ubuntu@ubuntu: ~ $ echo “c ($ pi/2)” | BC -L
0
ubuntu@ubuntu: ~ $ 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.

ubuntu@ubuntu: ~ $ echo “sqrt (4)” | BC -L
2

Durante il tentativo di calcolare la radice quadrata di un numero negativo, la shell lancerà un errore di runtime.

ubuntu@ubuntu: ~ $ 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.

ubuntu@ubuntu: ~ $ 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 comandi. Il comando "BC" fornisce molte funzioni e operatori matematici avanzati per eseguire calcoli aritmetici di alto livello. Questo tutorial ha discusso utilizzando il comando "BC" per eseguire operazioni aritmetiche avanzate in bash.