Linux-Workshop

Shell Scripting - Abläufe automatisieren

03.05.2013
Von Thomas Steudten

Abarbeitung stoppen und wiederaufnehmen

Nun läuft der Aufruf zwar im Vordergrund, aber möchten wir dies wirklich? Falls nicht, halten wir die Prozesskette mittels "CTRL-Z" einfach an. "jobs" zeigt uns ebenfalls nach Stunden den Status "Stopped" an und wir entscheiden uns, für eine Abarbeitung im Hintergrund, nachdem das System nicht mehr so unter Last steht: "bg" oder "bg <jobid>".

Leider schreibt uns die Ausgabe unser Terminal voll, also brechen wir die Ausführung mit "fg" und "CTRL-C" hier ab und senden die Fehlermeldungen ins Nirwana und die Ausgabe von "find" in eine Datei:

find / -type f -name date 2>/dev/null > /tmp/findout.txt

"2>" leitet nur stderr um, "1>" oder ">" die Standardausgabe in unsere Datei. Das ganze schicken wir in den Hintergrund.

Die Shell informiert uns, wenn die Abarbeitung beendet ist, sobald diese einen Prompt (PS1) ausgibt. Möchte man über die Beendigung sofort informiert werden, muss man der Shell dies über die Option "notify" mitteilen: "set -b" zum unmittelbaren Status oder "set +b" für Nachricht beim Prompt. "set -o" zeigt den Status der Optionen.

Stop und Resume sind nur zwei hilfreiche Tastatur-Eingaben um die Ausgabe im Terminal anzuhalten und wieder zu Starten. "CTRL-s" hält dazu die Ausgabe an und "CTRL-q" startet diese wieder. Die aktuelle Tastaturbelegung für die genannten Funktionen lassen sich über die Terminaleinstellungen "stty -a" abfragen und auch setzen.

Aus dem täglichen Leben kaum noch wegzudenken ist die History-Funktion der Shell über die Tasten Cursor-UP und -DOWN. Die ganze History seit dem Start der Shell lässt sich über das integrierte "history" Kommando ausgeben. Dort enthaltene Einträge kann man beispielsweise über "!34" wieder ausführen - 34 wäre hier der Eintrag mit der Nummer 34.