* Bernd Brodesser wrote:
* Christian Schult schrieb am 26.Apr.2000:
* Bernd Brodesser wrote:
Für das aufgerufene Script (hier ip-up.local) ist nicht erkennbar, ob sein(e) Startparameter nur ein Wort mit Leerzeichen ist ($*) oder mehrere Wörter ohne Leerzeichen ($@). Die Zuweisung nach $1, $2 usw. klappt in beiden Fällen.
Und auch die Parameterübergabe mit $@ verhindert nicht, das ein Parameter, der Leerzeichen enthält, aufgesplittet wird.
Nein $@ ist das Gleiche wie $*. Aber ich habe auch "$@" geschrieben. Die " sind hier schon wichtig. "$*" ist übrigens geradezu das Gegenteil. Dann wird alles zu einem Argument. Das ist imho der einzigste Unterschied von $* und $@, aber genau darum gibt es auch ein $@, weil es sich mit " anders verhällt.
Stimmt, jetzt habe ich's auch kapiert. Für den Fall, dass einer der Parameter ein Leerzeichen enthält, klappt der Aufruf von ip-up.local nur mit "$@" (inkl. "") derart, dass $1, $2 usw. wieder den gleichen Inhalt haben. --------------- begin cut --------------- #!/bin/bash # script_a echo \$* ./script_b $* echo \"\$*\" ./script_b "$*" echo \$@ ./script_b $@ echo \"\$@\" ./script_b "$@" exit 0 ---------------- end cut ---------------- --------------- begin cut --------------- #!/bin/bash # script_b echo \$1 $1 echo \$2 $2 echo \$3 $3 echo \$4 $4 echo \$5 $5 exit 0 ---------------- end cut ---------------- Tut mir leid, wenn ich hier für Konfusion gesorgt habe. :) christian -- Bitte kein CC: bei Antwort an Mailingliste Etikette per Mail: To: mailings-suse@gmx.de Subject: send etikette http://www.ndh.net/home/schult/etikette.html --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com