Shell Script-Rätselraten
Gelegentlich kommt es vor, das großes Rätselraten herrscht, über bestimmt Spitzfindigkeiten von Unix Shells. Sei es das Umbiegen von Deskriptoren oder das Verhalten bei Forks…
Zufällig bin ich gerade auf einen einen sehr schönen Foliensatz gestoßen, der zumindest für die bash abhilfe schafft. Sehr übersichtlich, perfekt zum Nachschlagen.
Puh, das war schlecht. Hier mal ein paar Ergänzungen:
2. Es gibt $PWD und $OLDPWD
8. Es gibt $((…))
9. Ich weiss ja nicht, was ein ‘einfaches if’ ist, aber dies hier könnte man darunter verstehen:
test $# -lt 4 && exit 1
In den Syntax-Beschreibungen steht immer sowas ‘while [ Bedingung ]‘ oder ‘if [ Bedingung ]‘. Die eigentlich Syntax ist aber ‘while Kommando’ bzw. ‘if Kommando’. D.h. es wird bei jedem Durchlauf der Schleife der Befehl ausgeführt, und nur wenn dieser mit status = 0 endet wird der Schleifenkörper ausgeführt.
Klassische Benutzerverwaltung: AHHHHHH, ‘Klassisch’ muss hier echt alt sein. Dafür sollte man immer die system tools wie useradd, usermod, groupadd, … nehmen. Vor allem sollte man die files nie einfach mit einem Editor öffnen. Da beim speichern ja erstmal die alte Datei gelöscht wird, gibt es da eine Lücke wo es plötzlich keine /etc/passwd gibt.