Skip to content

Shells ...

Die Diskussion um die beste Shell der Welt sehe ich manchmal mit einem Grinsen auf den Lippen. Es ist wohl unbestritten, dass die Z-Shell die derzeit beste Shell auf unixoiden Systemen ist. Davon haben Administratoren in grossen oder sehr grossen Umgebungen, so wie ich, leider nichts. Bei uns werkeln Systeme mit definierten aber unterschiedlichen Versionsständen.

Sicher ist allerdings, dass auf allen Systemen eine Korn-Shell verfügbar ist. Womit also Skripte schreiben? Wenn die Skripte auf echten Unixen und auf Linux laufen sollen, führt kein Weg an dem grössten gemeinsamen Nenner vorbei, auch wenn es deutlich schönere Lösungen gibt.

Selbst wenn es mehrere Versionen der Bourne-again shell im eigenen Netzwerk gibt, kann man sich bei übegreifendem Scripting wieder nur auf das Vorhandensein der kleinsten Version verlassen, auch wenn die aktuellste Version vielleicht Features hat, die das Leben leichter machen.

In dem Zusammenhang möchte ich noch einmal auf #!/bin/sh hinweisen.

Trackbacks

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

strcat am :

*Debian und CRUX z. B. haben keine KSH (oder eine Portierung like pdksh, ..) im Basesystem. Das einzige was definitiv jedes Unix per Default haben muss (wenn es POSIX ist), ist eine zu IEEE Std 1003.1-2001 konforme Shell. Und das ist halt mal die /bin/sh.
Ist ja auch kein Thema wenn man /bin/bash oder wasweißichwas als Shebang angibt, allerdings sollte man das nur machen wenn man shellspezifische Syntax verwendet, die "nur" unter /bin/bash (als Beispiel) funktioniert. Ein
CODE:
#!/bin/bash
echo "Jehova."

ist ein "falscher" Einsatz der Bash, weil für sowas (auch wenns ein extremst simples Beispiel ist) /bin/sh als Interpreter reicht. Das funktioniert dann auf jedem Linux/Unix.
Andere Interpreter als #!/bin/sh sollte man meiner Ansicht nach in einem Script nur verwenden, wenn man wie gesagt shellspezifische Syntax verwendet.

Dirk Deimeke am :

*Da bin ich anderer Meinung. Es sollte das verwendet werden, mit dem das Skript getestet wurde. Es hilft nicht #!/bin/sh dort einzutragen, wenn /bin/sh auf ein Softlink von einer anderen Shell ist.

strcat am :

*/bin/sh zeigt per Default bei jedem Linux/Unix auf eine zu POSIX konforme Shell.
Wenn shellspezifische Syntax verwendet wird, dann sollte man auch diese Shell als Interpreter angeben, korrekt.

Dirk Deimeke am :

*Da die (aller-)meisten, damit meine ich fast alle, nicht wissen, welche Kommandos shellspezifisch sind, sollte immer die Shell eingetragen werden, mit der das Skript getestet wurde.

Kommentar schreiben

Gravatar, Favatar, Pavatar, Identica, Twitter, MyBlogLog Autoren-Bilder werden unterstützt.
BBCode-Formatierung erlaubt
Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
:'(  :-)  :-|  :-O  :-(  8-)  :-D  :-P  ;-) 
Formular-Optionen