Paziņojuma if…else izmantošana programmā Bash nosacījuma koda izpildei.
Bash (Bourne Again Shell) ir apvalka komandu uzvedne un skriptu valoda GNU/Linux operētājsistēmās. Tas ir noklusējuma apvalks lielākajai daļai Linux izplatījumu.
Nosacītie paziņojumi ir ļoti svarīgi jebkurā programmēšanas valodā, gan apkopoti, gan skriptēti. Tie ļauj lietotājam izpildīt koda daļu, pamatojoties uz iepriekš definētu nosacījumu, kas ir viens no programmēšanas loģikas pamatiem. Šajā rakstā mēs uzzināsim, kā izmantot ja...citādi
nosacījuma paziņojums Bash valodā.
Ievads
The ja...citādi
Bash paziņojums ļauj lietotājam manipulēt ar koda plūsmu, pamatojoties uz nosacījumiem. Lietotājs var norādīt atsevišķus izpildāmos koda blokus, no kuriem tikai viens beidzot tiks izpildīts izpildlaikā, pamatojoties uz atbilstošo nosacījumu, kas ir izpildīts.
Ņemiet vērā, ka var norādīt vairāk nekā divus nosacījumus, kuriem elifs
paziņojumu var izmantot. Lietotājs var norādīt jebkuru nosacījumu skaitu, izmantojot elifs
, un visbeidzot noklusējuma nosacījums, izmantojot cits
bloķēt. Apskatīsim vairāk par to sintaksē un piemēros tālāk.
Vispārējā sintakse
Vispārējā sintakse priekš ja...citādi
paziņojums Bash valodā ir:
ja tad cits fi
Lūk, ja apmierina, t.i., ja atgriež 0 (veiksmi), tad tiek izpildīts koda bloks 1. Ja nosacījums neatgriež 0, t.i., atgriež kļūmes statusu, tad tiek izpildīts koda bloks 2. The
ja...citādi
bloks beidzas ar a fi
paziņojums, apgalvojums.
Vairākiem blokiem, kas atbilst vairākiem nosacījumiem,elifs
tiek izmantots:
ja tad tad elifs tad elifs ... ... cits fi
Šeit nosacījumi tiek pārbaudīti secībā un tiek izpildīts pirmā nosacījuma koda bloks, kas atgriež statusu 0 (veiksmīgs). Piem. ja Ja neviens no nosacījumiem neatgriež statusu 0, Ņemiet vērā, ka Lai izpildītu koda bloku ja mainīgajam ir noteikta vērtība: Lai pārbaudītu vairākas vērtības: Nosacījumi var būt jebkura Linux komanda. Atbilstošais koda bloks tiks izpildīts, ja komanda tiks izpildīta veiksmīgi. Iepriekš minētajā piemērā kopš Varam arī ligzdot citu Tas ir noderīgi, ja ir jāpārbauda atsevišķa nosacījumu kopa, kad ir izpildīts sākotnējais nosacījums. Piemēram, šāds kods mēģina instalēt tīmekļa servera programmatūru: Kods vispirms pārbauda, vai Nginx jau ir instalēts sistēmā. Ja tā ir, tas vienkārši parāda ziņojumu un iziet. Ja tā nav, tas mēģina instalēt Nginx. Ja kāda iemesla dēļ Nginx nevarēja instalēt sistēmā no pakotnes, tā mēģina instalēt Apache2. Ja pat Apache2 instalēšanas laikā rada kļūdu, tas iziet, parādot ziņojumu, ka programmatūru nevar instalēt. Līdzīgā veidā ligzdotu bloku var izmantot iekšpusē Līdzīgi jebkuram Bash kodam, Lietotājs var arī saglabāt šo kodu skripta failā un izpildīt skripta failu. The Lai šim failam piešķirtu izpildes atļaujas, palaidiet: Visbeidzot, lai izpildītu failu, palaidiet: Līdzīgi kā jebkurā programmēšanas valodā, atgriež statusu, kas nav nulle (atteice), tad
ir pārbaudīts. Ja
atgriež statusu 0,
tiek izpildīts. Pēc tam turpmākie nosacījumi netiek pārbaudīti, un koda izpilde tiek turpināta kodā pēc
fi
paziņojums, apgalvojums. citā blokā tiek izpildīts. Ņemiet vērā, ka cits bloks nav obligāts. Ja nav izpildīts neviens nosacījums, kā arī nē
cits
bloks ir norādīts, neviens nosacījuma koda bloks nedarbosies, un koda izpilde tiks turpināta kodā pēc fi
paziņojumu, kā parādīts zemāk esošajā plūsmas diagrammā.tad
paziņojums ir jāizmanto tikai pēc ja
un elifs
paziņojumi un nav nepieciešami pēc cits
paziņojums, apgalvojums.Piemēri
x=0 ja [ $x -eq 0 ] tad atbalss "X vērtība ir 0" else atbalso "X vērtība nav 0" fi
x=2 ja [ $x -eq 0 ] tad atbalss "Vērtība X ir 0" elif [ $x -eq 1 ] tad atbalss "Vērtība X ir 1" elif [ $x -eq 2 ] tad atbalso "Vērtība no X ir 2", pretējā gadījumā atbalsojas "X vērtība nav 0" fi
ja npm -v, tad atbalsojas "NPM atrodas sistēmā" citādi sudo apt install npm fi
npm
netika instalēta sistēmā, komanda npm -v
atgrieza statusu, kas nav nulle. Tādējādi koda izpilde tika veikta cits
bloku, kur mēs instalējam npm, izmantojot apt
pakotņu pārvaldnieks. Kā redzam, tas lika man ievadīt paroli un sāka npm instalēšanu.ja...citādi
bloks iekšpusē an ja
, cits
vai elifs
bloķēt:x=0 y=1 ja [ $x -eq 0 ] tad atbalss "X ir 0" ja [ $y -eq 1 ] tad atbalss "Y ir 1" else atbalss "Y nav 1" fi else atbalss "X ir nevis 0"fi
ja nginx -v, tad atbalss "NGINX jau ir instalēts." citādi, ja sudo apt instalējiet nginx, atkārtojiet "NGINX instalēšana veiksmīga". elif sudo apt instalējiet apache2, pēc tam atkārtojiet "APACHE2 instalēšana veiksmīga". else echo "Nevar instalēt tīmekļa programmatūru." fi
elifs
bloķēt arī.Izpilde
ja...citādi
: skripti un komandrindaja...citādi
paziņojumu var izmantot Bash apvalkā tieši vai no izpildāmā čaulas skripta faila. Kad Baša tulks atrod ja
, cits
vai elifs
paziņojums, tas turpina čaulu, lai ļautu lietotājam ievadīt koda bloku.#!/bin/bash
sākumā norāda tulku, kas tiks izmantots, kad fails tiek izpildīts. Lai gan Bash ir mūsdienās visbiežāk izmantotais apvalks, daži lietotāji dod priekšroku tādiem čauliem kā zsh, kas jānorāda bash vietā šī faila sākumā.chmod +x test.sh
./test.sh
Secinājums
ja...citādi
paziņojums ir Baša pamatīpašība. Apgūstot tā lietošanu, var rakstīt gan pamata, gan papildu skriptus.