Christian Kruse: Linux-Shell (bash) Funktionen und Signale?

Beitrag lesen

Hoi,
auch wenn ich kein Tux bin, sondern ein Teufel ;-)

habe mal ein kleines Anliegen. Ich möchte folgenden Ablauf
realisieren:

setze Signal TERM auf Slot goodBye

while(true) {
  Mache dies, das und jenes ....
  ruh dich kurz aus ;-)
}
Slotfunction goodBye() {
  mach noch was bestimmtes
  exit(0);
}
Aufgrund dessen, was ich so in der while-Schleife und vor dem
Beenden alles tun möchte halte ich ein Shell-Script für sehr
geeignet. Jedoch habe ich keine Ahnung, ob ich in der Shell auch
mit Funktionen und Signalen/Slots arbeiten kann und wenn ja, wie.

Klar geht das. Trap ist dein Freund:

http://www.mcsr.olemiss.edu/unixhelp/scrpt/scrpt2.9.html

Ein Link auf ein gutes Shell-Tutorial oder ein Hinweis auf ein
empfehlenswertes Buch zum Thema Shell unter Unix/Linux würde mich
ebenfalls freuen. Auch die Nennung eines anderen Forums zu diesem
Thema könnte helfen

http://www.mcsr.olemiss.edu/unixhelp/scrpt/ :-)

Noch eine zweite Frage. Den exit-Status zu einem Programm kann
man ja so auswerten:

if myProgram then
  echo "execution of myProgram successed"
else
  echo "execution of myProgram failed"
fi
Aber bisher bin ich daran gescheitert, mal den exit-Wert quasi
als Wert zu fassen, also in einer Variablen zu speichern oder mit
bestimmten Werten zu vergleichen, also sowas:

SUCCESS=myProgram // an alle nicht so Versierten, die trotzdem helfen wollen:
                  // beim belegen der Variablen läßt man meines Wissens nach das $ weg
if $SUCCESS = 0 then echo "Ausführung erfolgreich"
if $SUCCESS = 1 then echo "Ausführung ist aus diesem Grund gescheitert"
if $SUCCESS = 2 then echo "Ausführung ist aus jenem Grund gescheitert"

Geht das überhaupt und wenn ja wie? Muß man da einen Error-Status
abfragen? So, wie es dasteht, geht es jedenfalls nicht.

Der Exit-Status des zuletzt ausgefuehrten Befehls steht in $?.
Siehe auch http://www.mcsr.olemiss.edu/unixhelp/scrpt/scrpt2.2.2.html.

Gruesse,
 CK