Endestatus: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(→del) |
(→del) |
||
| Zeile 41: | Zeile 41: | ||
** beliebig viele angegebene Dateien dorthin verschiebt (so wie bei rm) | ** beliebig viele angegebene Dateien dorthin verschiebt (so wie bei rm) | ||
** Auskunft über die Verschiebungen gibt | ** Auskunft über die Verschiebungen gibt | ||
| − | * '''cd /usr/local/bin''' | + | <!-- * '''cd /usr/local/bin''' --> |
| − | * '''vim del''' | + | <!-- * '''vim del''' --> |
| − | <syntaxhighlight lang=bash> | + | <!-- <syntaxhighlight lang=bash> --> |
| − | #!/bin/bash | + | <!-- #!/bin/bash --> |
| − | papierkorb="$HOME/.trash" | + | <!-- papierkorb="$HOME/.trash" --> |
| − | ls $papierkorb > /dev/null 2>&1 || mkdir -p $papierkorb | + | <!-- ls $papierkorb > /dev/null 2>&1 || mkdir -p $papierkorb --> |
| − | mv $* $papierkorb | + | <!-- mv $* $papierkorb --> |
| − | for i in $* | + | <!-- for i in $* --> |
| − | do | + | <!-- do --> |
| − | echo $i in den Papierkorb verschoben. | + | <!-- echo $i in den Papierkorb verschoben. --> |
| − | done | + | <!-- done --> |
| − | </syntaxhighlight> | + | <!-- </syntaxhighlight> --> |
| − | * '''chmod +x del''' | + | <!-- * '''chmod +x del''' --> |
| − | * '''touch test{1,2,3}.dat''' | + | <!-- * '''touch test{1,2,3}.dat''' --> |
| − | * '''del test?.dat''' | + | <!-- * '''del test?.dat''' --> |
| − | test1.dat in den Papierkorb verschoben. | + | <!-- test1.dat in den Papierkorb verschoben. --> |
| − | test2.dat in den Papierkorb verschoben. | + | <!-- test2.dat in den Papierkorb verschoben. --> |
| − | test3.dat in den Papierkorb verschoben. | + | <!-- test3.dat in den Papierkorb verschoben. --> |
| − | * '''ls ~/.trash''' | + | <!-- * '''ls ~/.trash''' --> |
| − | test1.dat test2.dat test3.dat | + | <!-- test1.dat test2.dat test3.dat --> |
Version vom 31. Mai 2023, 13:57 Uhr
Nach der Ausführung eines Befehls wird ein Returncode (Endestatus) zurückgeliefert. Mit Hilfe des Returncodes lässt sich feststellen, ob der letzte Befehl fehlerfrei ausgeführt wurde.
Returncode = 0 Letzter Befehl wurde fehlerfrei ausgeführt. Returncode ≠ 0 Letzter Befehl wurde nicht fehlerfrei ausgeführt.
Das Kommando true liefert den Returncode 0, false liefert den Returncode 1 . Bei einigen Befehlen wird die zurückgelieferte Fehlermeldung (Returncode ≠ 0) noch weiter differenziert (z.B. man fsck). In der Systemvariablen $? ist der aktuelle Returncode abgelegt und kann vom Benutzer abgefragt werden. Bsp.:
- fsck asasas
- echo $?
16
oder
- ping www.xinux.de -w 1 -c 1 > /dev/null 2>&1
- ping 172.20.103.2 -w 1 -c 1 > /dev/null 2>&1
- echo $?
0
Erkenntnis: Rechner ist erreichbar
- ping 172.20.103.99 -w 1 -c 1 > /dev/null 2>&1
- echo $?
1
Erkenntnis: Rechner ist nicht erreichbar
- touch bohnen
- rm bohnen 2> /dev/null
- echo $?
0
Erkenntnis: Löschen war erfolgreich
- rm bohnen 2> /dev/null
- echo $?
1
Erkenntnis: Löschen war nicht erfolgreich
Aufgaben
del
- rm löscht Dateien, ohne sie dabei in einen Papierkorb zu verschieben
- Lösung: Schreiben Sie ein Skript, das
- einen Papierkorb erstellt, wenn er nicht bereits existiert
- beliebig viele angegebene Dateien dorthin verschiebt (so wie bei rm)
- Auskunft über die Verschiebungen gibt