BASH-programmering

Bash-udgangskode for sidste kommando

Bash-udgangskode for sidste kommando
Når en bash-kommando udføres, efterlader den udgangskoden uanset vellykket eller mislykket udførelse. Undersøgelse af udgangskoden kan give nyttig indsigt i opførelsen af ​​den sidste kørsel-kommando.

I denne vejledning skal du tjekke, hvordan du kontrollerer bash exit-kode for den sidste kommando og nogle mulige anvendelser af den.

Bash udgangskode

Hver UNIX / Linux-kommando, der udføres af shell-scriptet eller brugeren, efterlader en exit-status. Det er et heltal, der forbliver uændret, medmindre den næste kommando køres. Hvis udgangskoden er 0, blev kommandoen vellykket. Hvis udgangskoden ikke er nul (1-255), betyder det en fejl.

Der er mange potentielle anvendelser af bash exit-koden. Den mest åbenlyse er naturligvis at kontrollere, om den sidste kommando udføres korrekt, især hvis kommandoen ikke genererer noget output.

I tilfælde af bash er udgangskoden for den forrige kommando tilgængelig ved hjælp af shellvariablen “$?”.

Kontrol af Bash-udgangskode

Start en terminal, og kør enhver kommando.

$ dato

Kontroller værdien af ​​shellvariablen “$?”For udgangskoden.

$ ekko $?

Da kommandoen “dato” kørte med succes, er udgangskoden 0. Hvad ville der ske, hvis der var en fejl?

Lad os prøve at køre en kommando, der ikke findes.

$ abcd

Tjek udgangskoden.

$ ekko $?

Det er en værdi, der ikke er nul, hvilket indikerer, at den forrige kommando ikke blev udført korrekt.

Se nu på følgende kommando:

$ katteprøve.txt | grep “mønt”

Når du arbejder med en kommando, der har et eller flere rør, vil udgangskoden være den sidste kode, der udføres i røret. I dette tilfælde er det grep-kommandoen.

Da grep-kommandoen var vellykket, vil den være 0.

$ ekko $?

I dette eksempel, hvis grep-kommandoen mislykkes, er udgangskoden ikke-nul.

$ katteprøve.txt | grep “abcd”
$ ekko $?

Inkorporering af udgangskode i scripts

Udgangskoden kan også bruges til scripting. En enkel måde at bruge den på er at tildele den til en shellvariabel og arbejde med den. Her er et eksempel på et shell-script, der bruger exitkoden som en betingelse for at udskrive specifik output.

$ #!/ bin / bash
$ echo "hej verden"
$ status = $?
$ [$ status -eq 0] && echo "kommando vellykket" || ekko "kommando mislykket"

Når det køres, genererer scriptet følgende output.

Lad os nu se, hvad der sker, når der er en ugyldig kommando, der skal køres.

$ #!/ bin / bash
$ tilfældig-kommando
$ status = $?
$ [$ status -eq 0] && echo "kommando vellykket" || ekko "kommando mislykket"

Når den køres, vil output være anderledes.

Udgangskode Værdi Forklaring

Når udgangskoden ikke er nul, varierer værdien fra 1 til 255. Hvad betyder denne værdi nu??

Mens værdien er begrænset, er forklaringen af ​​hver værdi unik for programmet / scriptet. For eksempel har “ls” og “grep” forskellige forklaringer på fejlkode 1 og 2.

$ mand ls

$ mand grep

Definition af udgangsstatus i script

Når vi skriver et script, kan vi definere brugerdefinerede udgangskodeværdier. Det er en nyttig metode til lettere fejlfinding. I bash-scripts er det kommandoen "exit" efterfulgt af værdien for exitkoden.

$ exit

I henhold til konventionen anbefales det at tildele udgangskode 0 til vellykket udførelse og bruge resten (1-255) til mulige fejl. Når du når exit-kommandoen, afsluttes shell-scriptets udførelse, så pas på placeringen.

Se på følgende shell-script. Her, hvis betingelsen er opfyldt, afsluttes scriptet med udgangskoden 0. Hvis betingelsen ikke er opfyldt, er udgangskoden 1.

$ #!/ bin / bash
$ if [["$ (whoami)" != rod]]; derefter
$ echo "Ikke root-bruger."
$ udgang 1
$ fi
$ echo "root-bruger"
$ exit 0

Bekræft resultatet af at køre dette script uden sudo-privilegium eller "root" -bruger.

$ ./prøve.sh
$ ekko $?

Afsluttende tanker

Denne guide viser, hvad udgangskoder er, og hvordan du kan bruge dem. Det viser også, hvordan man tildeler passende udgangskoder i et bash-script.

Interesseret i bash scripting? En af de nemmeste måder at komme i gang er ved at skrive dine egne scripts. Tjek denne enkle guide til, hvordan du skriver et simpelt bash-script.

Glad computing!

Bedste kommandoliniespil til Linux
Kommandolinjen er ikke kun din største allierede, når du bruger Linux, den kan også være kilde til underholdning, fordi du kan bruge den til at spille...
Bedste apps til Gamepad Mapping til Linux
Hvis du kan lide at spille spil på Linux med en gamepad i stedet for et typisk tastatur- og musesystem, er der nogle nyttige apps til dig. Mange pc-sp...
Nyttige værktøjer til Linux-spillere
Hvis du kan lide at spille spil på Linux, er chancerne for, at du måske har brugt apps og hjælpeprogrammer som Wine, Lutris og OBS Studio for at forbe...