Hallo Thomas, Am 10.10.10 18:04, schrieb Thomas Moritz:
Am Sonntag, 10. Oktober 2010 17:04:33 schrieb Marcus Meissner:
Hallo Marcus, besten Dank fuer Deine schnelle Antwort, aber ...
Je nachdem was in der ersten Zeile steht, wendet die Bash verschiedene Personalitaeten an. /bin/sh ist die POSIX shell ohne Bash extensions zb.
Daher kommt das Verhalten.
Was mir trotzdem aus folgenden Gruenden nicht ganz klar wird:
ls -l /bin/bash -rwxr-xr-x 1 root root 627376 5. Jul 13:47 /bin/bash
ls -l /bin/sh lrwxrwxrwx 1 root root 4 20. Aug 18:35 /bin/sh -> bash
Das Programm erkennt anhand von argv[0], über welchen Namen es aufgerufen wird. Daher ist das Verhalten unterschiedlich, obwohl ein und dasselbe Binary aufgerufen wird. Betrachte es einfach wie einen zusätzlichen Konfigurationsparameter.
$>sh -extensions $>bash -extensions
Nicht sämtliche Extensions sind aktiviert. Im Wesentlichen ist die Unterschiedung dazu da, dass das Verhalten 100 % kompatibel zur POSIX-/bin/sh ist. Um Skripte zu testen, ob sie auch gar keine Bash-Extension verwenden, taugt dieses Verhalten der bash nicht. Sonst würden ja praktisch alle Skripte out-of-the-box mit /bin/sh -> dash (oder Busybox ash oder nash) laufen. Gruß, Bernhard