BASH-programmering

Bash utgangskode for siste kommando

Bash utgangskode for siste kommando
Når en bash-kommando kjøres, etterlater den utgangskoden, uavhengig av vellykket eller mislykket utførelse. Undersøkelse av utgangskoden kan gi nyttig innsikt i oppførselen til den siste kjøringen.

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.

$ dato

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

$ abcd

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

$ exit

I 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!

Hvordan utvikle et spill på Linux
For et tiår siden ville ikke mange Linux-brukere forutsi at deres favorittoperativsystem en dag ville være en populær spillplattform for kommersielle ...
Åpne kildeporter for kommersielle spillmotorer
Gratis, åpen kildekode og plattformspillmotorrekreasjoner kan brukes til å spille gamle så vel som noen av de ganske nylige spilletitlene. Denne artik...
Beste kommandolinjespill for Linux
Kommandolinjen er ikke bare din største allierte når du bruker Linux, den kan også være kilden til underholdning fordi du kan bruke den til å spille m...