Erstellen von Shell-Skripten: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 8: Zeile 8:
 
= Logische Operatoren =
 
= Logische Operatoren =
  
 +
* Jedes Programm generiert beim Beenden ein exit code (oder return code)
 +
* Ein Wert von 0 bedeutet, dass das Programm erfolgreich ausgeführt wurde
 +
* Je nach Fehlerart gibt das Programm einen höheren Wert zurück
 +
* den exit code des letzten Befehls kann man mit '''echo $?''' abfragen
 +
 +
<!----->
 +
<span id="und"></span>
 +
== UND ==
 +
 +
* Befehl 1 '''&amp;&amp;''' Befehl 2
 +
* Befehl 2 wird ausgeführt, wenn Befehl 1 mit exit code 0 beendet
 +
* ls &amp;&amp; echo &quot;hat funktioniert&quot;
 +
 +
<!----->
 +
<span id="oder"></span>
 +
== ODER ==
 +
 +
* Befehl 1 '''||''' Befehl 2
 +
* Befehl 2 wird ausgeführt, wenn Befehl 1 mit exit code &gt;0 beendet
 +
* ls nichtexistentedatei || echo &quot;hat nicht funktioniert&quot;
 +
 +
<!----->
 
<span id="beispiele"></span>
 
<span id="beispiele"></span>
 
= Beispiele =
 
= Beispiele =

Version vom 14. Februar 2023, 13:10 Uhr

Grundlagen

Logische Operatoren

  • Jedes Programm generiert beim Beenden ein exit code (oder return code)
  • Ein Wert von 0 bedeutet, dass das Programm erfolgreich ausgeführt wurde
  • Je nach Fehlerart gibt das Programm einen höheren Wert zurück
  • den exit code des letzten Befehls kann man mit echo $? abfragen

UND

  • Befehl 1 && Befehl 2
  • Befehl 2 wird ausgeführt, wenn Befehl 1 mit exit code 0 beendet
  • ls && echo "hat funktioniert"

ODER

  • Befehl 1 || Befehl 2
  • Befehl 2 wird ausgeführt, wenn Befehl 1 mit exit code >0 beendet
  • ls nichtexistentedatei || echo "hat nicht funktioniert"

Beispiele

pgreppier

  • pgrep gibt manchmal nicht genug Informationen aus
  • ps alx | grep <Programm> verbirgt die Kopfzeilen
  • Ziel ist es ein Skript zu schreiben, das mehr Informationen ausgibt als pgrep

del

  • rm löscht Dateien, ohne sie dabei in einen Papierkorb zu verschieben