Cumu aghjustà Càlculazioni à un script Bash
Ancu Bash hè un testu di scrittura, hà tutte e più capaci di una capacità di programazione generale. Questu includi funzioni aritmetichi. Ci hè parechje unepochi di sintassi chì pudete usà per evoca l'evaluazione aritmetica di una espressione. Forsi u più leghjite hè u cumandimu. Per esempiu
permettenu "m = 4 * 1024"hà calculatu 4 volte 1024 è assignanu u risultatu à a variàbila "m".
Pudete stampà u risultatu aghjunghje una stima di ecu :
permettenu "m = 4 * 1024" eco $ mPudete pruvà sta di a linea di mandatu cundiscendu u codice seguente:
permettenu "m = 4 * 1024"; echo $ mPudete ancu creà un schedariu chì cuntene i cumandante Bash, in quale casu avete aghjustatu una fila à u cima di u schedariu chì specifica u prugramma chì deve esse l'eseguisce u codice. Per esempiu:
#! / bin / bash permettenu "m = 4 * 1024" echo $ mAssumientu chì l'eseguitu Bash si trova in / bin / bash . Avete bisognu di scelta di i permessi di u vostru script file per ch'ellu hè eseguitate. Assuming u nome di scrittore di scrittore hè script1.sh , pudete stabilisce i permessi per fà u schedariu executable cù l'cumanda:
chmod 777 script1.shDopu chì si pò eseguite u so cumandimu:
./script1.shL'operazioni aritmetichi dispunibuli sò simili à quelli in linguagiu standardu di prugrammazione, cum'è Java è C. In addition multiplication, cum'è illustratu supra, utilizate ancu:
Chì "m = a + 7"o reste:
Chì "m = a - 7"o divisioni:
sia "m = a / 2"o modulo (u restu dopu una spluta interna):
Perchè "m = un% 100"Quandu una operazione hè stata appiicata à a listessa varieola a quale hè attribuitu u risultatu, puderà utilizà l'operatore di l'aritmetica standarde d'affissà chjamavani, chjamati ancu cum'è operatorii d'assignazione cumpreta. Per esempiu, per aghjunta, avemu:
let "m + = 15"chì hè equivalente à "m = m + 15". Per sustùncia avemu:
let "m - = 3"chì hè equivalente à "m = m - 3". Per divisioni facemu:
let "m / = 5"chì hè equivalente à "m = m / 5". E pi modulo, avemu:
permettenu "m% = 10"chì hè equivalente à "m = m% 10".
Inoltre, pudete utilizà l'operatore di incrementu è diminutivu :
permette "m ++"hè equivalente à "m = m + 1". E
sia "m--"hè equivalente à "m = m - 1".
E dopu ci hè u "operatore cunnessione di punti da punti" ternari, chì rende unu di dui valute secondu se a prublema spicciata hè vera o falsa. Per esempiu
let "k = (m <9)? 0: 1"A manu dritta di sta assignazione di l'assignmentu valora à "0" se a variàbila "m" hè menu di 9. Di manera distinta, valuta à 1. Questu significa chì a variable "k" hè attribuita "0" se "m" hè menu 9 è "1" altrimenti.
A forma generale di l'interrogazione di u cullegiu hè a:
cundizione? valore-se-true: value-if-falseAritmetica di u Punt flottante in Bash
L'operatore di lassà solu opara per l'aritmetica chile. Per aritmetica puntale flottante pudete utilizà per esempiu a calculatrice GNU bc cum'è illustratu in questu esempiu:
Ecu "32.0 + 1.4" | bcL'operatore "pipe" | " passa l'espressione aritmetica "32.0 + 1.4" à a calculatrice bc, chì torna u numeru reale. U cumandamentu di echo stampate u risultatu à u standard output.
Sintaxina Alternativa per Aritmetica
Backticks (retrovisu di quotes singuli) pò esse usatu per evaluà una espressione aritmetica cum'è questu esempiu:
Eccu "expr $ m + 18"Questu aghjunghje 18 à u valore di a variàbile "m" è stampate u risultatu.
Per assignà u valore calculà a una variable, pudete aduprà u sìmbulu ugguali senza espere attornu:
m = `expr $ m + 18`Una altra manera di evaluà l'espressioni aritmetichi hè di usà dui parèntesi. Per esempiu:
((m * = 4))Questu quattru à u valore di a variàbile "m".
In più di l'evaluazione aritmetica, u cunfettu di Bash furnisce altre constructioni di prugrammazione, cumu per i loops , i tempi , cunnizziunei , e funzioni è subrutine .