BASH-programmering

Bash-afsluitcode van het laatste commando

Bash-afsluitcode van het laatste commando
Wanneer een bash-commando wordt uitgevoerd, laat het de exit-code achter, ongeacht of het succesvol of niet succesvol is uitgevoerd. Het onderzoeken van de exit-code kan nuttig inzicht bieden in het gedrag van de last-run opdracht.

Bekijk in deze handleiding hoe u de bash-exitcode van de laatste opdracht en enkele mogelijke toepassingen ervan kunt controleren check.

Bash-afsluitcode

Elke UNIX/Linux-opdracht die door het shellscript of de gebruiker wordt uitgevoerd, laat een exit-status achter. Het is een geheel getal dat ongewijzigd blijft tenzij de volgende opdracht wordt uitgevoerd. Als de afsluitcode 0 is, was de opdracht succesvol. Als de afsluitcode niet nul is (1-255), betekent dit een fout.

Er zijn veel mogelijke toepassingen van de bash exit-code. De meest voor de hand liggende is natuurlijk om te controleren of het laatste commando correct wordt uitgevoerd, vooral als het commando geen uitvoer genereert.

In het geval van bash is de exit-code van het vorige commando toegankelijk via de shell-variabele "$?”.

Bash-afsluitcode controleren

Start een terminal en voer een willekeurig commando uit.

$ datum

Controleer de waarde van de shell-variabele "$?” voor de exit-code.

$ echo $?

Omdat de opdracht "date" met succes is uitgevoerd, is de afsluitcode 0. Wat zou er gebeuren als er een fout was??

Laten we proberen een opdracht uit te voeren die niet bestaat.

$ abcd

Controleer de exit-code.

$ echo $?

Het is een waarde die niet nul is, wat aangeeft dat de vorige opdracht niet correct werd uitgevoerd.

Kijk nu eens naar het volgende commando:

$ kattenmonster.txt | grep "munt"

Bij het werken met een commando dat een of meer pijpen heeft, is de afsluitcode de laatste code die in de pijp wordt uitgevoerd. In dit geval is dit het grep-commando.

Aangezien het grep-commando succesvol was, zal het 0 . zijn.

$ echo $?

In dit voorbeeld, als het grep-commando mislukt, is de afsluitcode niet nul-.

$ kattenmonster.txt | grep "abcd"
$ echo $?

Afsluitcode opnemen in scripts

De afsluitcode kan ook worden gebruikt voor scripting. Een eenvoudige manier om het te gebruiken is door het toe te wijzen aan een shell-variabele en ermee te werken. Hier is een voorbeeld van een shellscript dat de exit-code gebruikt als voorwaarde om specifieke uitvoer af te drukken.

$ #!/bin/bash
$ echo "hallo wereld"
$ status=$?
$ [ $status -eq 0 ] && echo "opdracht succesvol" || echo "opdracht mislukt"

Wanneer het wordt uitgevoerd, genereert het script de volgende uitvoer:.

Laten we nu eens kijken wat er gebeurt als er een ongeldige opdracht moet worden uitgevoerd.

$ #!/bin/bash
$ willekeurige opdracht
$ status=$?
$ [ $status -eq 0 ] && echo "opdracht succesvol" || echo "opdracht mislukt"

Wanneer wordt uitgevoerd, zal de uitvoer anders zijn.

Afsluitcode Waarde Uitleg

Wanneer de afsluitcode niet nul is, varieert de waarde van 1 tot 255. Wat betekent deze waarde nu??

Hoewel de waarde beperkt is, is de uitleg van elke waarde uniek voor het programma/script. "ls" en "grep" hebben bijvoorbeeld verschillende verklaringen voor foutcode 1 en 2.

$ man ik

$ man grep

Afsluitstatus definiëren in script

Bij het schrijven van een script kunnen we aangepaste exit-codewaarden definiëren. Het is een handige methode voor eenvoudiger debuggen. In bash-scripts is dit de opdracht "exit" gevolgd door de waarde van de exit-code.

$ afsluiten

Volgens de conventie wordt aanbevolen om exit-code 0 toe te wijzen voor een succesvolle uitvoering en de rest (1-255) te gebruiken voor mogelijke fouten. Bij het bereiken van het exit-commando, wordt de uitvoering van het shellscript beëindigd, dus wees voorzichtig met de plaatsing ervan.

Kijk eens naar het volgende shellscript:. Hier, als aan de voorwaarde is voldaan, wordt het script beëindigd met de afsluitcode 0. Als niet aan de voorwaarde wordt voldaan, is de exit-code 1.

$ #!/bin/bash
$ if [[ "$(whoami)" != wortel ]]; dan
$ echo "Geen rootgebruiker."
$ uitgang 1
$ fi
$ echo "rootgebruiker"
$ uitgang 0

Controleer het resultaat van het uitvoeren van dit script zonder sudo-privilege of "root"-gebruiker.

$ ./monster.sh
$ echo $?

Laatste gedachten

Deze gids laat zien wat exit-codes zijn en hoe u ze kunt gebruiken. Het laat ook zien hoe u de juiste exit-codes in een bash-script kunt toewijzen.

Geïnteresseerd in bash-scripting? Een van de gemakkelijkste manieren om aan de slag te gaan, is door uw eigen scripts te schrijven. Bekijk deze eenvoudige handleiding voor het schrijven van een eenvoudig bash-script.

Veel computerplezier!

Installeer de nieuwste OpenRA Strategy Game op Ubuntu Linux
OpenRA is een Libre/Free Real Time Strategy-game-engine die de vroege Westwood-games nabootst, zoals de klassieke Command & Conquer: Red Alert. Gedist...
Installeer de nieuwste Dolphin Emulator voor Gamecube & Wii op Linux
Met de Dolphin Emulator kun je de door jou gekozen Gamecube- en Wii-spellen spelen op Linux Personal Computers (pc). Omdat het een vrij beschikbare e...
Hoe de GameConqueror Cheat Engine in Linux te gebruiken
Het artikel bevat een handleiding over het gebruik van de GameConqueror cheat-engine in Linux. Veel gebruikers die games op Windows spelen, gebruiken ...