在shell脚本之间传递参数,但保留引号
问题描述:
如何将一个shell脚本的所有参数传递给另一个脚本?我试过$ *,但正如我所料,如果您引用了参数,则这不起作用。在shell脚本之间传递参数,但保留引号
例子:
$ cat script1.sh
#! /bin/sh
./script2.sh $*
$ cat script2.sh
#! /bin/sh
echo $1
echo $2
echo $3
$ script1.sh apple "pear orange" banana
apple
pear
orange
我希望它打印出来:
apple
pear orange
banana
答
使用"[email protected]"
代替$*
保留引号:
./script2.sh "[email protected]"
更多信息:
http://tldp.org/LDP/abs/html/internalvariables.html
$ *
所有的位置参数,视为一个词注: “$ *” 必须被引用。
$ @
与$ *,但是每个参数是一个带引号的字符串,也就是 参数上完整传递,没有解释或扩展。 这意味着,除其他外,参数 列表中的每个参数都被视为单独的单词。注意:当然,应该引用“$ @”。
请参阅http://stackoverflow.com/questions/255898/(稍有不同的问题 - 但答案是“$ @”就像这里一样)。 – 2009-12-31 21:45:02
我从中学到了很多,谢谢! – dogbane 2009-12-31 21:59:48