Šajā ceļvedī pārbaudiet, kā pārbaudīt pēdējās komandas bash izejas kodu un dažus iespējamos tā izmantošanas veidus.
Bash izejas kods
Katra UNIX / Linux komanda, ko izpilda čaulas skripts vai lietotājs, atstāj izejas statusu. Tas ir vesels skaitlis, kas paliek nemainīgs, ja netiek palaista nākamā komanda. Ja izejas kods ir 0, komanda bija veiksmīga. Ja izejas kods nav nulle (1-255), tas nozīmē kļūdu.
Bash izejas kodam ir daudz iespēju. Visredzamākais, protams, ir pārbaudīt, vai pēdējā komanda ir izpildīta pareizi, it īpaši, ja komanda nerada nevienu izvadi.
Bash gadījumā iepriekšējās komandas izejas kods ir pieejams, izmantojot čaulas mainīgo “$?”.
Pārbauda Bash izejas kodu
Palaidiet termināli un izpildiet jebkuru komandu.
$ datumsPārbaudiet čaulas mainīgā “$” vērtību?”Izejas kodam.
$ atbalss $?
Tā kā komanda “date” veiksmīgi darbojās, izejas kods ir 0. Kas notiktu, ja būtu kļūda?
Mēģināsim palaist komandu, kuras nav.
$ abcdPārbaudiet izejas kodu.
$ atbalss $?
Tā ir vērtība, kas nav nulle, norādot, ka iepriekšējā komanda netika pareizi izpildīta.
Tagad ieskatieties šādu komandu:
$ kaķu paraugs.txt | grep “monēta”
Strādājot ar komandu, kurai ir viena vai vairākas caurules, izejas kods būs pēdējais caurulē izpildītais kods. Šajā gadījumā tā ir komanda grep.
Tā kā komanda grep bija veiksmīga, tā būs 0.
$ atbalss $?
Šajā piemērā, ja komanda grep neizdodas, tad izejas kods būs nulle.
$ kaķu paraugs.txt | grep “abcd”$ atbalss $?
Izejas koda iekļaušana skriptos
Izejas kodu var izmantot arī skriptu veidošanai. Viens vienkāršs veids, kā to izmantot, ir piešķirt to čaulas mainīgajam un strādāt ar to. Šeit ir čaulas skripta paraugs, kas izejas kodu izmanto kā nosacījumu konkrētas izejas drukāšanai.
$ #!/ bin / bash$ echo "sveika pasaule"
$ statuss = $?
$ [$ status -eq 0] && atbalss "komanda ir veiksmīga" || atbalss "komanda neizdevās"
Palaidot, skripts ģenerēs šādu izvadi.
Apskatīsim, kas notiks, ja palaidīs nederīgu komandu.
$ #!/ bin / bash$ random-command
$ statuss = $?
$ [$ status -eq 0] && atbalss "komanda ir veiksmīga" || atbalss "komanda neizdevās"
Palaižot, izeja būs atšķirīga.
Izejas koda vērtības skaidrojums
Ja izejas kods nav nulle, vērtība svārstās no 1 līdz 255. Ko šī vērtība nozīmē?
Kaut arī vērtība ir ierobežota, katras vērtības skaidrojums ir unikāls programmai / skriptam. Piemēram, “ls” un “grep” ir dažādi 1. un 2. kļūdas koda skaidrojumi.
$ man ls$ cilvēks grep
Izejas statusa definēšana skriptā
Rakstot skriptu, mēs varam definēt pielāgotas izejas koda vērtības. Tā ir noderīga metode ērtākai atkļūdošanai. Bash skriptos tā ir komanda “exit”, kurai seko izejas koda vērtība.
$ izietSaskaņā ar konvenciju ieteicams veiksmīgai izpildei piešķirt izejas kodu 0 un pārējo (1-255) izmantot iespējamām kļūdām. Sasniedzot komandu exit, čaulas skripta izpilde tiks pārtraukta, tāpēc esiet uzmanīgs tās izvietojumā.
Apskatiet šo apvalka skriptu. Šeit, ja nosacījums ir izpildīts, skripts tiks pārtraukts ar izejas kodu 0. Ja nosacījums nav izpildīts, izejas kods būs 1.
$ #!/ bin / bash$, ja [["$ (whoami)" != sakne]]; pēc tam
$ echo "Nav root lietotājs."
$ iziet 1
$ fi
$ echo "root user"
$ izeja 0
Pārbaudiet šī skripta darbības rezultātu bez sudo privilēģijas vai root lietotāja.
$ ./ paraugs.sh$ atbalss $?
Pēdējās domas
Šī rokasgrāmata parāda, kādi ir izejas kodi un kā jūs tos varat izmantot. Tas arī parāda, kā piešķirt atbilstošus izejas kodus bash skriptā.
Interesē bash skripti? Viens no vienkāršākajiem veidiem, kā sākt, ir pats rakstīt skriptus. Apskatiet šo vienkāršo rokasgrāmatu par to, kā uzrakstīt vienkāršu bash skriptu.
Laimīgu skaitļošanu!