BASH programmēšana

Bash pēdējās komandas izejas kods

Bash pēdējās komandas izejas kods
Izpildot bash komandu, tā atstāj izejas kodu neatkarīgi no veiksmīgas vai neveiksmīgas izpildes. Izejas koda pārbaude var sniegt noderīgu ieskatu pēdējās palaistās komandas uzvedībā.

Š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.

$ datums

Pā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.

$ abcd

Pā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.

$ iziet

Saskaņā 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!

Vulkan Linux lietotājiem
Ar katru jauno grafisko karšu paaudzi mēs redzam, kā spēļu izstrādātāji pārspēj grafiskās uzticamības robežas un tuvojas fotoreālismam. Neskatoties uz...
OpenTTD vs Simutrans
Transporta simulācijas izveide var būt jautra, relaksējoša un ārkārtīgi vilinoša. Tāpēc jums jāpārliecinās, ka izmēģināt pēc iespējas vairāk spēļu, la...
OpenTTD apmācība
OpenTTD ir viena no populārākajām biznesa simulācijas spēlēm. Šajā spēlē jums ir jāizveido brīnišķīgs transporta bizness. Tomēr jūs sāksit sākumā apmē...