Funzionamento aritmetico Bash

Funzionamento aritmetico Bash
Fare operazioni aritmetiche in bash non è simile ad altri linguaggi di programmazione standard. Uno dei limiti di Bash è che non può gestire il punto mobile o i doppi numeri come altri linguaggi di scripting. Un altro strumento di comando viene utilizzato in bash per risolvere questo problema. Diversi tipi di operazioni aritmetiche sono mostrati in questo tutorial usando diversi esempi.

Esempio - 1: usando il comando 'expr'

Il comando più antico per fare operazioni aritmetiche a Bash è 'expr'. Questo comando può funzionare solo con i valori interi e stampa l'output direttamente nel terminale. Devi usare lo spazio con ogni operando quando si desidera utilizzare il 'expr'comanda di fare qualsiasi operazione matematica. Crea un file bash denominato expr.Bash con il seguente script per conoscere l'uso di 'expr'Comando.

#!/Bin/Bash
# Funziona come la stringa
expr '10 + 30 '
# Funziona come la stringa
Expr 10+30
#Performare l'aggiunta
Expr 10 + 30
#Find il valore del resto
Expr 30 % 9
#Utilizzare Expr con Backtick
myval1 = 'expr 30 /10'
echo $ myval1
#Utilizzare Expr all'interno del sostituto del comando
myval2 = $ (expr 30 - 10)
Echo $ myval2

Esegui il comando seguente per eseguire lo script.

$ bash expr.Bash

Produzione:
L'output mostra che gli operatori aritmetici hanno funzionato solo quando lo spazio viene utilizzato con ciascun valore numerico e non viene utilizzata alcuna citazione singola L'EXPR comando. Puoi anche assegnare l'output del expr comandare in una variabile e stampare la variabile in seguito utilizzando Backtick O sostituto del comando. 30/10 viene calcolato utilizzando Backtick E 30-10 viene calcolato utilizzando sostituto del comando.

Esempio - 2: usando il comando 'let'

'permettere' è un altro comando integrato per eseguire operazioni aritmetiche in bash. 'permettere' Il comando non può stampare l'output sul terminale senza archiviare il valore in una variabile. Ma il "let" Il comando può essere utilizzato per rimuovere le altre limitazioni del 'Expr' comando. Crea un file bash denominato permettere.Bash con il seguente script per conoscere l'uso del 'permettere' comando.

#!/Bin/Bash
# Moltiplicando 9 per 8
Let Val1 = 9*3
Echo $ Val1
# Dividi 8 per 3
Let "Val2 = 8 /3"
Echo $ Val2
# Sottraendo 3 da 9
Let Val3 = 9-3
Echo $ Val3
# Applicazione dell'incremento
Lascia che val4 = 7
Lascia che Val4++
Echo $ Val4
# Usando il valore dell'argomento nell'operazione aritmetica
Let "Val5 = 50+$ 1"
Echo $ Val5

Esegui il comando seguente per eseguire lo script.

$ Bash Let.Bash 50

Produzione:

L'output lo mostra il "let" Il comando è più flessibile del 'expr'Comando. Puoi valutare qualsiasi espressione aritmetica con o senza citazioni. Ma non puoi usare lo spazio all'interno di nessuna espressione matematica. L'operatore di incremento o decremento può essere utilizzato nel 'permettere'Comando. Come si può fare l'operazione aritmetica con i valori dell'argomento usando IL 'permettere'Il comando è mostrato nell'ultima parte dell'esempio.

Esempio - 3: usando le doppie parentesi

Qualsiasi operazione aritmetica può essere eseguita in bash senza usare alcun comando. Qui, le doppie parentesi vengono utilizzate per svolgere le attività aritmetiche e l'uso di doppie parentesi per l'esecuzione delle espressioni matematiche è più flessibile del comando come il 'expr' O 'permettere'. Crea un file bash chiamato DBL.Bash con il seguente script per testare le operazioni aritmetiche utilizzando le doppie staffe.

#!/Bin/Bash
# Calcola l'espressione matematica
Val1 = $ ((10*5+15))
Echo $ Val1
# Utilizzo dell'operatore post o pre -incremento/decremento
((val1 ++))
Echo $ Val1
Val2 = 41
((--val2))
Echo $ Val2
# Utilizzo dell'operatore shorthand
((Val2 += 60))
Echo $ Val2
# Dividi 40 per 6
((Val3 = 40/6))
Echo $ Val3

Esegui il comando seguente per eseguire lo script.

$ bash dbl.Bash

Produzione:

L'output mostra che le doppie fasce possono eseguire qualsiasi espressione matematica con spazio o senza spazio e puoi anche utilizzare gli operatori di incremento/decremento e stenografia nelle espressioni a doppia fascia.

Esempio - 4: usando il comando 'BC' per float o doppi numeri

Uno dei principali limiti dei modi di cui sopra di fare operazioni aritmetiche a Bash è quella "expr' O 'permettere' O doppie staffe Le espressioni non sono in grado di produrre numeri mobili o doppi. L'output delle operazioni di divisione degli esempi di cui sopra sono numeri interi. 'avanti Cristo'Il comando può essere utilizzato per risolvere questo problema e funziona come un calcolatore di base per il sistema operativo Linux. Crea un file bash denominato avanti Cristo.Bash con il seguente script per conoscere l'uso di il 'BC' comando nelle operazioni aritmetiche.

#!/Bin/Bash
# Dividi 55 per 3 solo con BC
Echo "55/3" | avanti Cristo
# Dividi 55 per 3 con l'opzione BC e -l
Echo "55/3" | BC -L
# Dividi 55 per 3 con BC e valore di scala
Echo "Scala = 2; 55/3" | avanti Cristo

Esegui il comando seguente per eseguire lo script.

$ Bash BC.Bash

Produzione:
L'output mostra che il semplice 'avanti Cristo'Il comando produce valore intero come altre opzioni quando viene eseguita qualsiasi espressione di divisione. 'BC -L'Il comando genera l'output esatto della divisione e puoi limitare la parte frazionaria utilizzando scala valore. Qui, Scala = 2 si usa. Quindi l'output mostra 2 cifre dopo il punto decimale.

Esempio-5: usando il comando printf per galleggiante o doppio numero

IL 'printf'Il comando è un altro modo di lavorare con i dati frazionari. Questo comando può essere utilizzato per generare il valore del punto mobile in modo più efficiente del comando "BC" dopo l'operazione aritmetica. Questo comando può anche essere usato per calcolare la potenza di un numero. Gli usi del 'printf'Il comando per diverse operazioni aritmetiche ha mostrato in questo esempio. Crea un file bash denominato prn.Bash con il seguente script per verificare l'uso del comando "printf" per l'output frazionario della divisione di due numeri.

#!/Bin/Bash
# Prendi il valore di dividendo dall'utente
Leggi -P "Immettere il valore del dividendo:" N1
# Prendi il valore divisore dall'utente
Leggi -P "Immettere il valore divisore:" N2
# Trova la divisione usando 'echo' e 'bc'
Echo "Scala = 2; $ N1/$ N2" | BC
# Trova la divisione usando 'printf'
printf "%.2f \ n "" $ ((10 ** 2*$ n1/$ n2)) e-2 "

Esegui il comando seguente per eseguire lo script.

$ Bash PRN.Bash

Produzione:
Il seguente output mostra che il valore di divisione generato dai comandi "bc" e "printf" di due numeri interi sono gli stessi.

Il seguente output mostra che quando il valore del dividendo è un numero di punto mobile, il valore di divisione generato dal comando "BC" è corretto ma il comando "printf" ha generato un errore.

Crea un file bash denominato PRN2.Bash con il seguente script per conoscere l'uso del comando "printf" per l'output frazionario corretto quando il valore del dividendo è un numero a punto mobile.

#!/Bin/Bash
# Prendi il valore di dividendo dall'utente
Leggi -P "Immettere il valore del dividendo:" N1
# Prendi il valore divisore dall'utente
Leggi -P "Immettere il valore divisore:" N2
# Trova la divisione usando 'printf', 'echo' e 'bc'
printf "%.2f \ n "'echo $ n1/$ n2 | bc -l'

Esegui il comando seguente per eseguire lo script.

$ Bash PRN2.Bash

Produzione:
L'output mostra che il comando "printf" con "bc" genera l'output corretto.

Esempio-6: usando il comando AWK per l'operazione aritmetica

L'uso del comando "Awk" è un altro modo per eseguire l'operazione aritmetica in grado di generare output correttamente per i numeri a punto mobile. In questo esempio le operazioni aritmetiche che utilizzano il comando "Awk" senza formattazione e con formattazione. Crea un file bash denominato Awk.Bash con il seguente script per verificare l'uso del comando 'awk' per l'operazione aritmetica.

#!/Bin/Bash
# Inizializza il valore del dividendo
N1 = 90
# Inizializza il valore divisore
N2 = 43
# Stampa l'output senza formare
awk "inizio stampa $ n1/$ n2"
# Stampa l'output con la formattazione
awk "inizio printf"%.2f \ n ", $ n1/$ n2"

Esegui il comando seguente per eseguire lo script.

$ Bash Awk.Bash

Produzione:
L'output mostra che il comando 'AWK' può generare un output frazionario appropriato.

Esempio-7: calcola la percentuale di un valore

A volte dobbiamo calcolare il valore percentuale di criteri particolari. La percentuale può essere calcolata in bash utilizzando il comando "printf" e il comando "echo". Supponiamo che dobbiamo scoprire la percentuale di studenti passati in un esame in base al numero totale di studenti e agli studenti passati totali. La soluzione a questo problema ha mostrato in questo esempio. Crea un file bash con il seguente script per calcolare il valore percentuale degli studenti passati usando il comando "printf".

#!/Bin/Bash
# Prendi il numero totale di studenti dall'utente
Leggi -p "Numero totale di studenti:" Total_Std
# Prendi il numero totale di studenti passati dall'utente
Leggi -P "Numero totale di studenti passati:" Basted_std
# Calcola la percentuale di studenti passati
printf "La percentuale di studenti passati: %.2f %% \ n "" $ ((10 ** 3 * 100 * $ BASSED_STD/$ total_std)) E-3 "

Esegui il comando seguente per eseguire lo script.

$ bash percentuale.Bash

Produzione:
L'output mostra la percentuale di studenti di passaggio in base al numero totale di studenti e ha superato gli studenti.

Conclusione

Gli usi di diversi operatori aritmetici in bash e i modi per eseguire le operazioni aritmetiche utilizzando comandi diversi hanno mostrato in questo tutorial utilizzando più esempi per aiutare gli utenti bash.