Endestatus: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 34: Zeile 34:
 
= Aufgaben =
 
= Aufgaben =
  
== del ==
+
* [[Aufgaben Bash Endestatus]]
 
 
* '''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
 
<!-- * '''cd /usr/local/bin''' -->
 
<!-- * '''vim del''' -->
 
 
 
<!-- <syntaxhighlight lang=bash> -->
 
<!-- #!/bin/bash -->
 
 
 
<!-- papierkorb="$HOME/.trash" -->
 
 
 
<!-- ls $papierkorb > /dev/null 2>&1 || mkdir -p $papierkorb -->
 
<!-- mv $* $papierkorb -->
 
 
 
<!-- for i in $* -->
 
<!-- do -->
 
<!--    echo $i in den Papierkorb verschoben. -->
 
<!-- done -->
 
<!-- </syntaxhighlight> -->
 
 
 
<!-- * '''chmod +x del''' -->
 
<!-- * '''touch test{1,2,3}.dat''' -->
 
<!-- * '''del test?.dat''' -->
 
 
 
<!--  test1.dat in den Papierkorb verschoben. -->
 
<!--  test2.dat in den Papierkorb verschoben. -->
 
<!--  test3.dat in den Papierkorb verschoben. -->
 
<!-- * '''ls ~/.trash''' -->
 
 
 
<!--  test1.dat  test2.dat  test3.dat -->
 

Aktuelle Version vom 2. Juni 2023, 09:44 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