Kiel skribi IF-Statements en Bash-Script

Komandoj, Sintakso kaj Ekzemploj

Kun se-deklaro, kiu estas tipo de kondiĉa deklaro, vi povas plenumi malsamajn agojn laŭ specifaj kondiĉoj. Ĝi efektive donas la sistemon la kapablon preni decidojn.

Ekzemplo de la plej simpla formo de se-deklaro estus:

grafo = 5 se [$ count == 5] tiam eĥo "$ count" fi

En ĉi tiu ekzemplo, la variablo "kalkulo" estas uzata por specifi kondiĉon kiu estas uzata kiel parto de la se-deklaro. Antaŭ ol la se-deklaro estas ekzekutita, la variablo "grafo" estas atribuita la valoro "5". La se-deklaro tiam kontrolas ĉu la valoro de "kalkulo" estas "5". Se tio estas, la ekzekuto inter la ŝlosilvortoj "tiam" kaj "fi" estas ekzekutita, alie ajn ajn deklaroj sekvantaj la se-deklaron estas ekzekutitaj. La ŝlosilvorto "fi" estas "se" literumita malantaŭen. La baza skripta lingvo uzas ĉi tiun konvencion por marki la finon de kompleksa esprimo, tia se-deklaro aŭ kazo-deklaroj.

La "eĥo" deklaro pruvas sian argumenton, en ĉi tiu kazo, la valoro de la variablo "kalkulo", al la fina fenestro. Indigo de la kodo inter la ŝlosilvortoj de la se-deklaro plibonigas legeblecon sed ne estas necesa.

Se vi havas situacion kie peco de kodo devus esti ekzekutita nur se kondiĉo ne estas vera, vi povas uzi la ŝlosilvorton "alian" en se-deklaro, kiel en ĉi tiu ekzemplo:

grafo = 5 se [$ count == 5] tiam eĥo "$ count" else echo "count is not 5" fi

Se la kondiĉo "$ count == 5" estas vera, la sistemo presas la valoron de la variablo "kalkulo", alie ĝi presas la ĉenon "grafo ne estas 5".

Se vi volas diferenci inter pluraj kondiĉoj, vi povas uzi la ŝlosilvorton "elif", kiu derivas de "alia se", kiel en ĉi tiu ekzemplo:

se [$ count == 5] tiam eĥo "kalkulo estas kvin" elif [$ count == 6] tiam eĥo "kalkulo estas ses" alia eĥo "neniu el la supre" fi

Se "kalkulo" estas "5", la sistemo presas "kalkulo estas kvin". Se "kalkulo" ne estas "5" sed "6", la sistemo presas "kalkulo estas ses". Se ĝi ne estas nek "5" nek "6", la sistemo presas "neniun el la supre".

Kiel vi eble divenis, vi povas havi ajnan nombron de "elif" klaŭzoj. Ekzemplo kun multaj "elif" kondiĉoj estus:

se [$ count == 5] tiam eĥo "kalkulo estas kvin" elif [$ count == 6] tiam eĥo "kalkulo estas ses" elif [$ count == 7] tiam eĥo "kalkulo estas sep" elif [$ count = = 8] tiam eĥo "kalkulo estas ok" elif [$ count == 9] tiam eĥo "kalkulo estas naŭ" alia eĥo "neniu el la supre" fi

Pli kompakta maniero por skribi tiajn deklarojn kun multaj kondiĉoj estas la kazo . Ĝi funkcias simila al la se-deklaro kun multaj "elif" klaŭzoj sed estas pli konciza. Ekzemple, la supra parto de kodo povas esti skribita per la "kazo" deklaro kiel sekvas:

kazo "$ count" en 5) eĥo "grafo estas kvin" ;; 6) eĥo "grafo estas ses" ;; 7) eĥo "kalkulo estas sep" ;; 8) eĥo "grafo estas ok" ;; 9) eĥo "grafo estas naŭ" ;; *) eĥo "neniu el la supre" esac

Se-deklaroj ofte uzas ene de buklojdum-bukloj kiel en ĉi tiu ekzemplo:

grafo = 1 farita = 0 dum [$ count -le 9] do dormu 1 ((grafo ++)) se [$ count == 5] tiam daŭrigu foje "$ count" farita eĥo finita

Vi ankaŭ povas nestumi se deklaroj. Plej simpla nestita se deklaro estas de la formo: se ... tiam ... alia ... se ... tiam ... fi ... fi. Tamen, se-deklaro povas nesti kun arbitra komplekseco.

Vidu ankaŭ kiel pasi argumentojn al bash-skripto , kiu montras kiel uzi kondiĉalojn por procesi parametrojn pasitajn de la komandlinio.

La baska konko provizas aliajn programadajn konstruojn, kiel bukloj , bukloj , kaj aritmetikaj esprimoj .