Hi,
wenn ich die dash benutze, habe ich folgendes Problem:
$ touch bla $ . bla .: bla: not found $ ls bla bla $
Diesen Fehler gibt es mit jedem Abkömmling der ash, also auch mit busybox und kmk_ash aber nicht mit der bash. Woran liegts? Hat das Ding einen Bug oder bin ich zu doof? Ubuntisten hier?
Viele Grüße, Torsten
Josef Spillner 2005@kuarepoti-dju.net (Fr 04 Jan 2008 17:42:56 CET):
Am Freitag 04 Januar 2008 17:31:33 schrieb Torsten Werner:
$ touch bla $ . bla .: bla: not found $ ls bla bla
$ . $PWD/blah
. ./blah
.. ist cooler oder verkehrt? :-)
On Jan 4, 2008 5:45 PM, Heiko Schlittermann hs@schlittermann.de wrote:
. ./blah
.. ist cooler oder verkehrt? :-)
Den . an das Ende von $PATH anzuhängen geht auch und erspart wildes Gepatche von fremden Code.
Danke, Torsten
On 04.01.08 Torsten Werner (mail.twerner@googlemail.com) wrote:
On Jan 4, 2008 5:45 PM, Heiko Schlittermann hs@schlittermann.de wrote:
Moin.
. ./blah
.. ist cooler oder verkehrt? :-)
Den . an das Ende von $PATH anzuhängen geht auch und erspart wildes Gepatche von fremden Code.
<Grundlagenwissen> ....und sollte bei uid=0 grundsätzlich nicht gemacht werden </Grundlagenwissen>
H.
On Jan 4, 2008 7:22 PM, Hilmar Preusse hille42@web.de wrote:
<Grundlagenwissen> ....und sollte bei uid=0 grundsätzlich nicht gemacht werden </Grundlagenwissen>
Es hat doch niemand von uid=0 gesprochen.
Torsten
On 04.01.08 Torsten Werner (mail.twerner@googlemail.com) wrote:
On Jan 4, 2008 7:22 PM, Hilmar Preusse hille42@web.de wrote:
Moin,
<Grundlagenwissen> ....und sollte bei uid=0 grundsätzlich nicht gemacht werden </Grundlagenwissen>
Es hat doch niemand von uid=0 gesprochen.
...ich wollts ja nur gesagt haben. EOT
H.
Torsten Werner mail.twerner@googlemail.com (Fr 04 Jan 2008 17:54:34 CET):
On Jan 4, 2008 5:45 PM, Heiko Schlittermann hs@schlittermann.de wrote:
. ./blah
.. ist cooler oder verkehrt? :-)
Den . an das Ende von $PATH anzuhängen geht auch und erspart wildes Gepatche von fremden Code.
<nitpicker> # es muß nicht mal der "." sein, ein leeres Feld (nach dem ":") # genügt auch PATH=$PATH: </nitpicker>
Hallo Heiko,
On Jan 4, 2008 8:32 PM, Heiko Schlittermann hs@schlittermann.de wrote:
<nitpicker> # es muß nicht mal der "." sein, ein leeres Feld (nach dem ":") # genügt auch PATH=$PATH: </nitpicker>
was genau bewirkt das? Ist das irgendwo dokumentiert?
Viele Grüße, Torsten
Torsten Werner mail.twerner@googlemail.com (Fr 04 Jan 2008 23:35:10 CET):
Hallo Heiko,
On Jan 4, 2008 8:32 PM, Heiko Schlittermann hs@schlittermann.de wrote:
<nitpicker> # es muß nicht mal der "." sein, ein leeres Feld (nach dem ":") # genügt auch PATH=$PATH: </nitpicker>
was genau bewirkt das? Ist das irgendwo dokumentiert?
Hm, sicher. Ich kann mich aber nur daran erinnern, daß uns das mal jemand in Heimatkunde so erzählt hat.
Ich glaube(!) auch, mitten drin funktioniert das:
/usr::/usr/bin /usr:.:/usr/bin
sind äquivalent.
Bestimmt waren früher die Punkte knapp. Und da wurde eben gespart.
On Jan 4, 2008 11:40 PM, Heiko Schlittermann hs@schlittermann.de wrote:
Ich glaube(!) auch, mitten drin funktioniert das:
/usr::/usr/bin /usr:.:/usr/bin
sind äquivalent.
Bestimmt waren früher die Punkte knapp. Und da wurde eben gespart.
Mir gruselt ein wenig. ;-)
Torsten
Am Cuma 04 Ocak 2008 23:40:24 schrieb Heiko Schlittermann:
Ich glaube(!) auch, mitten drin funktioniert das:
/usr::/usr/bin /usr:.:/usr/bin
Ja, das tut es. Besonders ekelhaft ist das in Makefiles, wenn man z.B. Java compiliert und der Java-Compiler dann die lokalen Dateien compiliert, auch wenn er die eigentlich schon compilierten aus einem Archiv verwenden sollen, die weiter hinten in einem CLASSPATH=xxx.jar::yyy.jar kommen.
Das ist mir erst vor wenigen Wochen wieder auf die Füße gefallen, und das kann schnell vorkommen, wenn man solche Pfade aus Variablen zusammenbaut, die eventuell durch Schreibfehler dann den leeren String ergeben. Da wollte ich schon einen Rant gegen Java draus machen, aber da es Java nur vom Unix-PATH abgeschaut hat, kann man Sun da nicht viel vorwerfen.
Josef
Torsten Werner mail.twerner@googlemail.com (Fr 04 Jan 2008 17:31:33 CET):
Hi,
wenn ich die dash benutze, habe ich folgendes Problem:
$ touch bla $ . bla .: bla: not found $ ls bla bla $
Diesen Fehler gibt es mit jedem Abkömmling der ash, also auch mit busybox und kmk_ash aber nicht mit der bash. Woran liegts? Hat das Ding einen Bug oder bin ich zu doof? Ubuntisten hier?
Ich denke, das ist Posix, wenn ich mir die bash(1) ansehe:
source filename [arguments] Read and execute commands from filename in the current shell environment and return the exit status of the last command exe‐ cuted from filename. If filename does not contain a slash, file | names in PATH are used to find the directory containing file‐ | name. The file searched for in PATH need not be executable. | When bash is not in posix mode, the current directory is | searched if no file is found in PATH. If the sourcepath option to the shopt builtin command is turned off, the PATH is not searched. If any arguments are supplied, they become the posi‐ tional parameters when filename is executed. Otherwise the positional parameters are unchanged. The return status is the
Also würde mit einer bash in Posix-Mode wohl das selbe passieren. (Wobei ich das Gefühl habe, daß da wiederum Manpage und Realität unterschiedliche Dinge postulieren:
heiko@jumper:~ $ bash --posix heiko@jumper:~ $ touch jjj heiko@jumper:~ $ . jjj
Also vieleicht ein Bug der Bash?
Am Freitag 04 Januar 2008 17:44:26 schrieb Heiko Schlittermann:
Also vieleicht ein Bug der Bash?
Wenn man die Bash-Entwickler damit konfrontiert und sie einigermaßen findig sind, werden sie antworten, dass es da keine Diskrepanz gibt.
Denn da steht: Wenn die Bash nicht im POSIX-Modus läuft, wird das aktuelle Verzeichnis mit abgesucht.
Daraus folgt keine Aussage, was passiert, wenn sie aber doch im POSIX-Modus läuft :-)
Josef
lug-dd@mailman.schlittermann.de