Erstellen von Shell-Skripten: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 19: Zeile 19:
 
* Befehl 1 '''&&''' Befehl 2
 
* Befehl 1 '''&&''' Befehl 2
 
* Befehl 2 wird ausgeführt, wenn Befehl 1 mit exit code 0 beendet
 
* Befehl 2 wird ausgeführt, wenn Befehl 1 mit exit code 0 beendet
* ls && echo "hat funktioniert"
+
* ls / && echo "hat funktioniert"
  
 
<!----->
 
<!----->
 +
bin  etc        initrd.img.old  lib64      media  proc  sbin  tmp  vmlinuz
 +
boot  home        lib            libx32      mnt    root  srv  usr  vmlinuz.old
 +
dev  initrd.img  lib32          lost+found  opt    run  sys  var
 +
hat funktioniert
 
<span id="oder"></span>
 
<span id="oder"></span>
 
== ODER ==
 
== ODER ==
Zeile 30: Zeile 34:
  
 
<!----->
 
<!----->
 +
ls: Zugriff auf 'nichtexistentedatei' nicht möglich: Datei oder Verzeichnis nicht gefunden
 +
hat nicht funktioniert
 
<span id="beispiele"></span>
 
<span id="beispiele"></span>
 
= Beispiele =
 
= Beispiele =

Version vom 14. Februar 2023, 13:12 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"
bin   etc         initrd.img.old  lib64       media  proc  sbin  tmp  vmlinuz
boot  home        lib             libx32      mnt    root  srv   usr  vmlinuz.old
dev   initrd.img  lib32           lost+found  opt    run   sys   var
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"
ls: Zugriff auf 'nichtexistentedatei' nicht möglich: Datei oder Verzeichnis nicht gefunden
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