Hallo, Am Wed, 21 Apr 2004, Martin Schmitz schrieb:
Am Mittwoch, 21. April 2004 18:00 schrieb David Haller:
*grummel* Da sieht man mal wieder, wozu es fuehrt, wenn man [ verwendet, das dann fuer einen Teil der if-Syntax gehalten wird.
Wo wir gerade dabei sind. Ich schreibe meine Shell Skripte ganz gerne sh kompatibel, daher verwende ich gerne die ash dafür. Aber was ist das für eine komische Shell bei SuSE? Da wird behauptet, das sei die NetBSD /bin/sh. Aber die ist es definitiv nicht. Auch habe ich bei NetBSD noch nie was von Almquist gehört. Die SuSE ash kennt *keine* Arithmetic Expressions (( .. ))!
Die originale ash auch und die bourne shell (/bin/sh) ebenfalls nicht! Das koennen nur POSIX-shells, wie die aktuelle bash oder ksh.
Wie soll die denn /bin/sh ersetzen können!? Warum nimmt man nicht die richtige NetBSD sh (IMHO eine ksh)?
pdksh? Das ist auch keine bourne shell sondern eine POSIX shell. Die kannst du nicht als Vergleich verwenden.
'Tschulljung, das mußte irgendwie raus... ;-) Wie macht ihr das denn, wenn ihr Skripte für /bin/sh schreiben wollt? Man kann doch nicht davon ausgehen, daß das eine bash ist?!
Und genausowenig eine ksh bzw. generell POSIX-shell. Die ash (die kein (( )) kann!) ist von den frei erhaeltlichen am naechsten an der Bourne shell dran. Also teste damit.
Schon allein die Tatsache, daß sich die Bash-Buildins test und [ anders verhalten als die Versionen unter /bin/ irritiert mich oft. Das sollte doch eigentlich im POSIX Standard drin sein, oder?
Verwechsle GNU/bash/POSIX test nicht miteinander. Die bash scheint aber GNU-Test als builtin zu verwenden (ich hab jetzt aber nicht alle tests verglichen). -dnh PS: liest du dcous? -- If you haven't got time to RTFM, you haven't got time to whine on this mailing list.