Hi Torsten! On Do, 29 Jul 2010, Torsten Förtsch wrote:
Hallo,
ich bin mir sicher, dass ich zu folgendem Thema schon mal einen Bugreport erstellt hatte. Keine Ahnung, was dann daraus geworden ist, aber heute fand ich das Problem in meiner gestern installierten 11.3 wieder. Meine Suche nach meinem Bugreport (zu irgendeiner anderen 1x.x Version) blieb erfolglos. Möglicherweise bin ich einfach zu blöd. Bitte um Erleuchtung.
Also der Fehler. In /usr/sbin/Check steht in der shebang Zeile /bin/sh. Nun liest das Script später aber /etc/profile, welches irgendwann init-Files aus dem HOME-Verzeichnis, wie .bashrc u.ä. liest. Wenn nun die Bash als /bin/sh aufgerufen wird, ändert sich die Syntax leicht, z.B.
a-b () { :; }
wird in der Bash problemlos verarbeitet, als /bin/sh aufgerufen liefert das selbe Binary aber:
sh: `a-b': not a valid identifier
Nun werden in meiner .bashrc solche Funktionen definiert, weshalb /usr/bin/Check letztlich nicht funktioniert.
Das ist aber kein Bug. Bash verhält sich dokumentiert anders, wenn sie als sh aufgerufen wird: ,----[ man bash ]- | If bash is invoked with the name sh, it tries to mimic the startup | behavior of historical versions of sh as closely as possible, while | conforming to the POSIX standard as well. `---- und POSIX verlangt, dass Namen folgendermaßen aufgebaut sind: http://www.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_0... ,---- | 3.230 Name | | In the shell command language, a word consisting solely of underscores, | digits, and alphabetics from the portable character set. The first | character of a name is not a digit. `---- Mit freundlichen Grüßen Christian -- Die Ehrgeizigen und die Wollüstigen haben nur selten Zeit zu denken. -- François Marie Voltaire -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org