Aritmetica in Bash

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 $ m

Pudete pruvà sta di a linea di mandatu cundiscendu u codice seguente:

permettenu "m = 4 * 1024"; echo $ m

Pudete 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 $ m

Assumientu 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.sh

Dopu chì si pò eseguite u so cumandimu:

./script1.sh

L'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-false

Aritmetica 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" | bc

L'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 .