Am Mittwoch, 24. September 2003 15:51 schrieb David Haller:
Hallo,
Am Wed, 24 Sep 2003, Christian Schneider schrieb:
Am Mittwoch, 24. September 2003 04:03 schrieb David Haller:
[..]
Quoten!
MKISOFS="`which mkisofs`" ^ ^ Installier dir mkisofs mal in "~/eigene\ programme/bin/" und setz dieses Verz. in $PATH... *veg*
Ich habe sowas nicht gequotet in meinem Script. Offengestanden habe
^^^^^ War vielleicht etwas ungenau.
ich aber bei dem einen oder anderen Fall auch noch meine kleinen Problemchen mit dem Quoten. Deshalb habe ich deinen Fall oben mal ausprobiert:
chsch@client2:~> mkdir bin\ dir chsch@client2:~> echo '#!/bin/bash' > bin\ dir/test_script chsch@client2:~> echo 'ls -l ~' >> bin\ dir/test_script chsch@client2:~> chmod u+x bin\ dir/test_script chsch@client2:~> PATH=${PATH}:/home/chsch/bin\ dir/ chsch@client2:~> TEST=`which test_script` chsch@client2:~> echo $TEST /home/chsch/bin dir/test_script
Läuft doch alles rund, oder!?
Warum sollte man hier dennoch quoten?
Und jetzt ruf mal 'test_script' via Variable auf...
Hmm, ich glaube hier gab es ein kleines Missverständnis. ;-) Um den Aufruf via Variable ging es mir nicht. Da ist es mir schon klar, dass man quoten muss. Mir ging es viel mehr um die Variablenzuweisung (<- das war das "sowas" aus meiner ersten Mail ;-)) und ob VARIABLE=`blabla` nicht in jedem Fall das Gleiche macht wie VARIABLE="`blabla`". Wie im zweiten Fall zu quoten hast du ganz oben empfohlen und auch in einem anderen, kürzlich gelaufenen Thread (s. auch [1] und [2]). Da ich keinen Unterschied zwischen den beiden Formen finden konnte, habe ich mal nachgefragt. Nicht dass es nachher irgendwelche Fälle gibt, in denen das Script bei der nicht gequoteten Version doch einen Fehler produziert oder zumindest anders reagiert...
dh@slarty[3]: /tmp/test4 (0)$ mkdir 'bin dir' dh@slarty[3]: /tmp/test4 (0)$ echo -e '#!/bin/bash\necho "Hallo Welt!"' > bin\ dir/test_script dh@slarty[3]: /tmp/test4 (0)$ chmod u+x bin\ dir/test_script dh@slarty[3]: /tmp/test4 (0)$ PATH=./bin\ dir:${PATH} dh@slarty[3]: /tmp/test4 (0)$ T=`which test_script`
[1] ^^^^^^^^^^^^^^^^^^^^^
dh@slarty[3]: /tmp/test4 (0)$ echo $T ./bin dir/test_script dh@slarty[3]: /tmp/test4 (0)$ $T bash: ./bin: No such file or directory dh@slarty[3]: /tmp/test4 (127)$
Na? Daemmert's? *g*
dh@slarty[3]: /tmp/test4 (0)$ T="`which test_script`"
[2] ^^^^^^^^^^^^^^^^^^^^^^^
dh@slarty[3]: /tmp/test4 (0)$ $T bash: ./bin: No such file or directory dh@slarty[3]: /tmp/test4 (127)$ "$T" Hallo Welt! dh@slarty[3]: /tmp/test4 (0)$
-dnh
Tschüs, Christian