【发布时间】:2015-03-28 22:43:39
【问题描述】:
我想将参数从一个 shell 脚本(比如 script1)传递给另一个。一些参数包含空格。所以我在参数中包含了引号,在传递给 script2 之前,我附和了它。是这样的,
echo $FL gives
-filelist "/Users/armv7/My build/normal/My build.LinkFilelist" -filelist "/Users/arm64/My build/normal/My build.LinkFilelist"
但是当我这样做时
script2 -arch armv7 -arch arm64 -isysroot /Applications/blahblah/iPhoneOS8.1.sdk $FL
如果我这样做,在脚本2中,
for var in "$@"
do
echo "$var"
done
我还是得到了
"-arch"
"armv7"
"-arch"
"arm64"
"isysroot"
"/Applications/blahblah/iPhoneOS8.1.sdk"
"-filelist"
""/Users/armv7/My"
"build/normal/My" // I want all these 3 lines together
build.LinkFilelist""
"-filelist"
""/Users/arm64/My"
"build/normal/My"
build.LinkFilelist""
有人可以纠正我的错误吗?我应该怎么做才能把提到的论点作为一个整体。
【问题讨论】:
-
mywiki.wooledge.org/BashFAQ/050 不要将带引号的字符串粘贴在变量中并期望它们能够工作,但它们不会。直接传递参数即可。
-
如何设置 FL 变量?像这样 -filelist /Users/armv7/My build/normal/My build.LinkFilelist -filelist /Users/arm64/My build/normal/My build.LinkFilelist ?