【发布时间】:2011-06-01 22:24:28
【问题描述】:
我需要编写一个 bash 脚本,除其他外,它应该将其所有参数原封不动地传递给另一个程序。
小例子:
$ cat >proxy.sh #!/bin/bash ./script.sh $@ ^D $ chmod +x 代理.sh $猫>脚本.sh #!/bin/bash 回声一个 $1 回声两个 $2 回声三 $3 ^D $ chmod +x 脚本.sh这种幼稚的方法不适用于带空格的参数:
$ ./proxy.sh "a b" c 一个 二乙 三个c预期:
$ ./proxy.sh "a b" c 一个 a b 两个 c 三我应该在proxy.sh 中写些什么才能发生这种情况?
请注意,我不能使用别名,proxy.sh 必须是一个脚本——它在调用 script.sh 之前会做一些事情。
【问题讨论】:
-
"...它的所有参数是否应该完整地传递给另一个程序。" ——这是笔误吗?你想说什么?
-
"...应该 pass 它的所有参数..." 已修复,抱歉。
标签: bash escaping command-line-arguments