PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : leerzeichen in script-parametern



Nixblikker
22-10-2007, 09:51
ich hab mal mein bash-problem auf zwei zweizeiler runtergerechnet:
----------------
testfunc.sh:

echo "$# parameters"
echo "$@"

------------------
calltest.sh:

param1=a
param2="b c"
./testfunc.sh ${param1} \"${param2}\"

------------------------

wenn ich testfunc.sh aufrufe mit
./testfunc.sh a "b c"
bekomme ich korrekterweise als Antwort, dass ich ZWEI PARAMETER übergeben hat.

starte ich allerdings
./calltest.sh
die ja genau das Selbe tut, interpretiert testfunc aber DREI PARAMETER

Bevor ich BUG schreie, wollte ich hiermal nachfragen, ob jemand Rat weis - muss ich in der calltest.sh irgendetwas noch penibler maskieren? Auch wenn das hier grad 'n bisschen akademisch ausschaut, hat die sache einen praktischen Grund denn mir gelingt es einfach nicht ein script mit der Zeile
./XXmodify -m \"$modstring\" $file
zum fliegen zu bringen.

Danke.

anniyka
22-10-2007, 12:08
~/ > param1=a
~/ > param2="b c"
~/ > for i in ${param1} \"${param2}\"; do echo $i; done
a
"b
c"
~/ > for i in ${param1} \"${param2}\"; do echo $i ; done | wc -l
3




~/ > for i in ${param1} "${param2}"; do echo $i; done
a
b c
~/ > for i in ${param1} "${param2}"; do echo $i ; done | wc -l
2
~/ >


gruss,
anniy

Nixblikker
23-10-2007, 09:20
oh, das half tatsächlich.

Besten Dank.