Post by Hauke LagingPost by Frank MeyerIgitt. Warum immer solche Bashisms?
Heutzutage kann kaum noch einer portable Shell-Scripts schreiben,
wenn er mit der bash angefangen hat. Diese Shell verseucht die
Sprache.
Quatsch.
- Man könnte alle Shells bis auf eine abschaffen, wenn es nicht
"erlaubt" wäre, Spezialitäten zu benutzen.
Andererseits hift es keinem, wenn die gleiche Funktionalität
in verschiedenen Shells unterschiedlich implementiert wird.
Beispiel:
a=$[ 1 + 1 ]
versteht nur die BASH, aber
((a=1+1))
verstehen BASH, ksh, und ksh93 (wahrscheinlich auch zsh).
Ausserdem gibt es neben dem Funktionsumfang noch andere
Kriterien zur Auswahl einer Shell, z.B. Geschwindigkeit,
Portabilität der verwendeten Sprache, Verfügbarkeit.
Post by Hauke Laging- bash dürfte die meistbenutzte Shell sein.
Oder "csh"/tcsh. Das heisst aber nicht, dass man deshalb
die Portabilität ignorieren kann. Mehr als 90% der Web-Benutzer
verwenden den Internet Explorer - sollte man deshalb alle
anderen Browser aussen vor lassen?
Post by Hauke Laging- Wenn einer ein portables oder auf einer speziellen Shell
lauffähiges Script benötigt, dann steht es im frei, das in seinem
Posting mitzuteilen. Er wird dann kaum mit unpassenden Antworten
belästigt werden.
Viele Anfänger wissen gar nicht, dass es verschiedene Shells
gibt. Es hilft, wenn man ihnen die Vor- und Nachteile
(z.B. Portabilität) einer gegebenen Lösung mitteilt.
Meine Erfahrung ist, dass 90% der BASH benutzer sie deshalb
verwenden, weil sie (a) "da ist" (default /bin/sh), und
(b) weil die Cursortasten funktionieren.
Dies sind gute Gründe, eine interaktive Shell auszuwählen.
Für Shell-Skripte dagegen spielen die interaktiven Fähigkeiten
einer Shell überhaupt keine Rolle. Andere Faktoren (z.B.
Portabilität, Schnelligkeit, Einfachheit des Skriptes)
sind wichtiger.
Post by Hauke Laging- Wer "so wenig" Ahnung hat, dass er hier Fragen stellt, die beinahe
jeder "irgendwie" beantworten kann, der ist einerseits aller
Wahrscheinlichkeit eh bash-Benutzer und braucht andererseits keine
Portabilität. Wer sich von der bash entfernt hat, wird üblicherweise
soviel Experte sein, dass er die bash-Lösungen sowohl nicht mehr
nötig hat als auch leicht anpassen kann.
Du meinst also
(1) wer Anfänger ist, verwendet die BASH
(2) wer keine Ahnung hat, interessiert sich nicht für Portabilität
Diese Annahmen sind meiner Ansicht nach absolut nicht zu halten.
Es gibt auch UNIX-Benutzer, die kein Linux verwenden (und damit
wahrscheinlich keine Bash). Dazu kommt, dass die meisten
BASH-spezifischen Konstrukte in Shell-Skripten nicht verwendet
werden, weil sie einfacher oder die einzige Möglichkeit sind
ein Problem zu lösen, sondern weil der Programmierer einfach
nicht weiss, dass sie unportabel sind. Ein gelegentlicher
Hinweis auf Portabilitätsprobleme, oder vielleicht sogar
eine portable Alternativlösung würden uns allen helfen
z.B. unportable "configure" Skripten zu vermeiden.
Aus diesem Grund finde ich es zwar in Ordnung, Lösungen
anzugeben die nur in einer spezifischen Shell funktionieren,
man sollte dies aber auch klarstellen.
Heiner
--
___ _
/ __| |_ _____ _____ _ _ Heiner STEVEN <***@nexgo.de>
\__ \ _/ -_) V / -_) ' \ Shell Script Programmers: visit
|___/\__\___|\_/\___|_||_| http://www.shelldorado.com/