I denne guiden, sjekk ut hvordan du sjekker bash exit-kode for den siste kommandoen og noen mulige bruksområder av den.
Bash utgangskode
Hver UNIX / Linux-kommando som utføres av skallskriptet eller brukeren, etterlater en avslutningsstatus. Det er et heltall som forblir uendret med mindre neste kommando kjøres. Hvis utgangskoden er 0, var kommandoen vellykket. Hvis utgangskoden ikke er null (1-255), betyr det en feil.
Det er mange potensielle bruksområder for bash exit-koden. Den mest åpenbare er selvfølgelig å verifisere om den siste kommandoen utføres riktig, spesielt hvis kommandoen ikke genererer noen utdata.
Når det gjelder bash, er utgangskoden til den forrige kommandoen tilgjengelig ved hjelp av skallvariabelen “$?”.
Kontrollerer Bash Exit Code
Start en terminal, og kjør hvilken som helst kommando.
$ datoSjekk verdien på skallvariabelen “$?”For utgangskoden.
$ ekko $?
Siden "dato" -kommandoen kjørte vellykket, er utgangskoden 0. Hva ville skje hvis det var en feil?
La oss prøve å kjøre en kommando som ikke eksisterer.
$ abcdSjekk utgangskoden.
$ ekko $?
Det er en verdi som ikke er null, noe som indikerer at den forrige kommandoen ikke ble utført riktig.
Ta en titt på følgende kommando:
$ katteprøve.txt | grep “mynt”
Når du arbeider med en kommando som har en eller flere rør, vil utgangskoden være den siste koden som ble utført i røret. I dette tilfellet er det grep-kommandoen.
Siden grep-kommandoen var vellykket, vil den være 0.
$ ekko $?
I dette eksemplet, hvis grep-kommandoen mislykkes, vil utgangskoden være null.
$ katteprøve.txt | grep “abcd”$ ekko $?
Inkluderer utgangskode i skript
Utgangskoden kan også brukes til skripting. En enkel måte å bruke den på er å tilordne den til en skallvariabel og jobbe med den. Her er et eksempel på skallskript som bruker utgangskoden som en betingelse for å skrive ut spesifikk utskrift.
$ #!/ bin / bash$ echo "hei verden"
$ status = $?
$ [$ status -eq 0] && echo "kommando vellykket" || ekko "kommando mislykket"
Når det kjøres, genererer skriptet følgende utdata.
La oss nå se hva som skjer når det er en ugyldig kommando å kjøre.
$ #!/ bin / bash$ tilfeldig kommando
$ status = $?
$ [$ status -eq 0] && echo "kommando vellykket" || ekko "kommando mislykket"
Når den kjøres, vil utgangen være annerledes.
Utgangskode Verdi Forklaring
Når utgangskoden ikke er null, varierer verdien fra 1 til 255. Nå, hva betyr denne verdien?
Mens verdien er begrenset, er forklaringen av hver verdi unik for programmet / skriptet. For eksempel har “ls” og “grep” forskjellige forklaringer på feilkode 1 og 2.
$ mann ls$ man grep
Definere Avslutt status i skript
Når vi skriver et skript, kan vi definere egendefinerte utgangskodeverdier. Det er en nyttig metode for enklere feilsøking. I bash-skript er det "exit" -kommandoen etterfulgt av verdien for utgangskoden.
$ exitI henhold til konvensjonen anbefales det å tilordne utgangskode 0 for vellykket utførelse og bruke resten (1-255) for mulige feil. Når du når exit-kommandoen, vil kjøringen av skallskriptet avsluttes, så vær forsiktig med plasseringen.
Ta en titt på følgende skallskript. Her, hvis betingelsen er oppfylt, avsluttes skriptet med utgangskoden 0. Hvis vilkåret ikke er oppfylt, vil utgangskoden være 1.
$ #!/ bin / bash$ if [["$ (whoami)" != rot]]; deretter
$ echo "Ikke rotbruker."
$ utgang 1
$ fi
$ echo "root user"
$ exit 0
Bekreft resultatet av å kjøre dette skriptet uten sudo-privilegium eller "root" -bruker.
$ ./prøve.sh$ ekko $?
Siste tanker
Denne guiden viser hva utgangskoder er og hvordan du kan bruke dem. Det viser også hvordan du tilordner passende utgangskoder i et bash-skript.
Interessert i bash scripting? En av de enkleste måtene å komme i gang er ved å skrive dine egne skript. Sjekk ut denne enkle guiden om hvordan du skriver et enkelt bash-skript.
Glad databehandling!