BASH programiranje

Bash izhodna koda zadnjega ukaza

Bash izhodna koda zadnjega ukaza
Ko se izvede ukaz bash, za seboj pusti izhodno kodo, ne glede na uspešno ali neuspešno izvedbo. Preučitev izhodne kode lahko ponudi koristen vpogled v vedenje zadnjega zagnanega ukaza.

V tem priročniku si oglejte, kako preverite bashovo izhodno kodo zadnjega ukaza in nekatere možne načine njegove uporabe.

Bash izhodna koda

Vsak ukaz UNIX / Linux, ki ga izvede skript lupine ali uporabnik, zapusti status izstopa. To je celo število, ki ostane nespremenjeno, razen če se zažene naslednji ukaz. Če je izhodna koda 0, je bil ukaz uspešen. Če izhodna koda ni nič (1-255), pomeni napako.

Izhodne kode bash obstaja veliko potencialnih uporab. Najbolj očitna je seveda preveriti, ali je zadnji ukaz pravilno izveden, še posebej, če ukaz ne ustvari nobenega izhoda.

V primeru bash je izhodna koda prejšnjega ukaza dostopna s spremenljivko lupine »$?".

Preverjanje izhodne kode Bash

Zaženite terminal in zaženite kateri koli ukaz.

$ datum

Preverite vrednost spremenljivke lupine »$?"Za izhodno kodo.

$ echo $?

Ker se je ukaz »datum« uspešno zagnal, je izhodna koda 0. Kaj bi se zgodilo, če bi prišlo do napake?

Poskusimo zagnati ukaz, ki ne obstaja.

$ abcd

Preverite izhodno kodo.

$ echo $?

To je vrednost, ki ni nič, kar pomeni, da se prejšnji ukaz ni pravilno izvedel.

Zdaj si oglejte naslednji ukaz:

$ mačji vzorec.txt | grep “kovanec”

Pri delu z ukazom, ki ima eno ali več cevi, bo izhodna koda zadnje kode, izvedene v cevi. V tem primeru gre za ukaz grep.

Ker je bil ukaz grep uspešen, bo 0.

$ echo $?

V tem primeru, če ukaz grep ne uspe, izhodna koda ne bo nič.

$ mačji vzorec.txt | grep "abcd"
$ echo $?

Vključitev izhodne kode v skripte

Izhodno kodo lahko uporabite tudi za skriptiranje. Enostaven način uporabe je dodelitev spremenljivki lupine in delo z njo. Tu je vzorčni skript lupine, ki kot pogoj za izpis določenega izhoda uporablja izhodno kodo.

$ #!/ bin / bash
$ echo "živjo svet"
$ status = $?
$ [$ status -eq 0] && echo "ukaz uspešen" || echo "ukaz neuspešen"

Med izvajanjem bo skript ustvaril naslednji izhod.

Zdaj pa poglejmo, kaj se zgodi, ko zaženemo neveljaven ukaz.

$ #!/ bin / bash
$ random-command
$ status = $?
$ [$ status -eq 0] && echo "ukaz uspešen" || echo "ukaz neuspešen"

Ob zagonu bo izhod drugačen.

Pojasnilo vrednosti izhodne kode

Ko izhodna koda ni nič, je vrednost od 1 do 255. Zdaj, kaj pomeni ta vrednost?

Čeprav je vrednost omejena, je razlaga vsake vrednosti edinstvena za program / skript. Na primer, "ls" in "grep" imata različni razlagi kode napak 1 in 2.

$ man ls

$ man grep

Določanje stanja izhoda v skriptu

Med pisanjem skripta lahko določimo vrednosti izhodne kode po meri. To je uporaben način za lažje odpravljanje napak. V skriptih bash gre za ukaz "exit", ki mu sledi vrednost izhodne kode.

$ izhod

V skladu s konvencijo je priporočljivo dodeliti izhodno kodo 0 za uspešno izvedbo, preostanek (1-255) pa uporabiti za morebitne napake. Ko dosežete izhodni ukaz, se izvajanje skripte lupine zaključi, zato bodite previdni pri njegovi namestitvi.

Oglejte si naslednji skript lupine. Če je pogoj izpolnjen, se skript konča z izhodno kodo 0. Če pogoj ni izpolnjen, bo izhodna koda 1.

$ #!/ bin / bash
$ if [["$ (whoami)" != koren]]; potem
$ echo "Ni korenski uporabnik."
$ izhod 1
$ fi
$ echo "root uporabnik"
$ izhod 0

Preverite rezultat izvajanja tega skripta brez privilegije sudo ali uporabnika root.

$ ./ vzorec.sh
$ echo $?

Končne misli

Ta priročnik prikazuje, kaj so izhodne kode in kako jih lahko uporabite. Prav tako prikazuje, kako v skriptu bash dodelite ustrezne izhodne kode.

Zanima me bash skript? Eden najlažjih načinov za začetek je pisanje lastnih skriptov. Oglejte si ta preprost vodnik o tem, kako napisati preprost bash skript.

Srečno računalništvo!

Kako uporabljati GameConqueror Cheat Engine v Linuxu
Članek zajema vodnik o uporabi varalnice GameConqueror v Linuxu. Številni uporabniki, ki igrajo igre v sistemu Windows, pogosto uporabljajo aplikacijo...
Najboljši emulatorji igralne konzole za Linux
V tem članku bo navedena priljubljena programska oprema za emulacijo igralne konzole, ki je na voljo za Linux. Emulacija je sloj združljivosti program...
Najboljši Linux Distros za igre na srečo v letu 2021
Operacijski sistem Linux je daleč od prvotnega, preprostega, strežniškega videza. Ta OS se je v zadnjih letih izjemno izboljšal in se je zdaj razvil v...