Cumu Scrive IF-Statements in a Bash-Script

Mandati, Sintaxina è Esempii

Cù una affirmazione, cum'è un tipu di stipule condicionale, puderete realizà diverse azzioni deveni à e cundizioni specifichi. Hè efficace à u sistema a capacità di decisione.

Un esempiu di a forma simplice di una affirmazione si fussi:

count = 5 se [$ count == 5] dopu eccu "$ count" fi

In questu l'esempiu, a variàbila "cunfrunta" hè adupratu per esempiu di una cundizione chì si usa comu parti di l'affirmazione. Prima di l'esse dichjarazione s'excreta, a variable "count" hè attribuita u valore "5". L'affirmazione si verifica si u valore di "cunti" hè "5". Sì questu hè u casu a dichjarazione trà e parolle "allora" è "fi" sò eseguitu, altri o seguenti affirmazioni dopu l'affirmazione s'ellu si eseguite. A keyword "fi" hè "se" speltatu retrocede. U bash scripting usa a questa cunvenzione per marcarà a fini di una espresa cumplicatta, un affirmazione o questa-affirmazioni.

U manifesu "eccu" stampava a so argumentu, in stu casu, u valore di a variable "count", à a finestra di terminal. Indentazione di u còdice entre i chjave di a manifestazione se-struttura improves legibile però ùn hè micca necessariu.

Se tenete una situazione chì un pezzu di codice si deve esse eseguitu solu se una condicione ùn hè micca veru, pudete aduprà a keyword "altru" in un affirmazione, cum'è in questu esempiu:

count = 5 se [$ count == 5] dopu eccu "$ count" altri eccu "cunde micca 5" fi

Se a cundizione "$ count == 5" hè veru, u sistema imprime u valore di a varià "count", altrimente stampate a stringa "count is not 5".

Se vulete diferenze trà e cundizzioni assai, pudete aduprà a chjave "elif", chì si deriva da "altru ùn", cum'è in questu esempiu:

si [$ count == 5] dopu eccu "cunse hè cinque" elif [$ count == 6] eppo "count is six" altri eccu "nimu di l'altitudine" fi

Sì "cunti" hè "5", u sistema impremenu "u cuntestu hè cinque". Sì "cunti" ùn hè "5" ma "6", u sistema impiche "contà hè sei". Se ùn hè nè "5" nè "6", u sistema impiche "nimu di l'altitudine".

Comu pudete avete capito, pudete avè alcuni numeri di "elif". Un esempiu cù e diverse cuncetti "elif" seranu:

se [$ count == 5] eppo "count is five" elif [$ count == 6] eppo "count is six" elif [$ count == 7] eppo "count is seven" elif [$ count = = 8] dopu eccu "contà ottu" elif [$ count == 9] dopu eccu "contà hè novi" altri eccu "nimu di l'altitudine" fi

Un modu più compilatu per scrive stu forti cun manifestazioni assai hè u metu di u casu . Funziona simili a l'affirmazione cù manifestazione "elif" clause ma hè più cunsescensore. Per esempiu, u pezzu di codice ponu esse riformatu cù a "affirmazioni" chì seguita:

casu "$ count" in 5) ecu "u cuntestu hè cinque" ;; 6) ecu "cunse hè sei" ;; 7) ecu "cunti è sette" ;; 8) Ecu "hè u ottu" ;; 9) ecu "cunde hè novi" ;; *) eco "nimu di l'altri" esac

Sse dichjarazioni sò spessu usati intra i ciclichi o anche di ciclu in questu esempiu:

count = 1 done = 0 mentre chì [$ count -le 9] fate dorme 1 ((count + +)) se [$ count == 5] da continuà à u fiere "$ count" done echo Terminu

Pudete ancu avè imbuscatu se affirmazioni. Simplest imbastatu si u manifestazione hè di a forma: se ... allura ... altru ... s'ellu ... allura ... fi ... fi. In ogni casu, se-statement pò ane aghjustatu cù cumplicità arbitraria.

Vede ancu cumu passà argumenti à un script bash , chì mostra comu utilizà cunnizzioni per i paràmetri di processu passatu da a linea di cummanda.

U bash shell aghjusteghja altre constructioni di prugrammazione, cumu per i loops , i loops è l'espressioni aritmetichi .