Endestatus: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| 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