Bash die bourne again shell ist die Standard shell unter vielen unixoiden Systemen. Und man kann sie natürlich auch skripten. Da gibts allerdings immer wieder ein paar Stolpersteine. Mein aktueller war einer mit test.
Wie jetzt test in der Überschrift steht doch… Ich weiß was das steht. test ist ein Programm (Funktion) das Ausdrücke auswertet und einen bool-Wert zurück gibt. Das ist ganz nützlich für if-Konstrukte.
if true ; then tue etwas fi |
Anstelle von true folgt nun ein bool-Wert, der kann durch test erzeugt werden.
test ausdruck oder [ ausdruck ] |
Dabei kann Ausdruck relativ viel sein: eine Funktion wie -e DateiName gibt wahr zurück, wenn die Datei existiert; Vergleich von Strings oder Integer-Zahlen durch >< = (oder ==) und !(Negation). Das kann alles den Man-Pagen von test entnommen werden (und lässt sich tausendfach im Internet nachlesen).
Zum Stolperstein wird allerdings die Kurzform von test, also die Klammern [] wenn man nicht beachtet , dass zwischen Klammer und Ausdruck ein Leerzeichen stehen muss. Sonst kann bash diesen Ausdruck nicht richtig interpretieren. Noch mal als Listing:
[space ausdruck space] |