Bash:如何逃避$@?

前端之家收集整理的这篇文章主要介绍了Bash:如何逃避$@?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要编写一个bash脚本,除其他外,应将其所有参数原封不动地传递给另一个程序.

最小的例子:

$cat >proxy.sh 
#!/bin/bash

./script.sh $@
^D

$chmod +x proxy.sh 

$cat >script.sh 
#!/bin/bash

echo one $1
echo two $2
echo three $3 
^D

$chmod +x script.sh 

这种天真的方法不适用于带空格的参数:

$./proxy.sh "a b" c
one a
two b
three c

预期:

$./proxy.sh "a b" c
one a b
two c
three

我应该在proxy.sh中写什么才能实现?

请注意,我不能使用别名,proxy.sh必须是一个脚本 – 它在调用script.sh之前会做一些事情.

引用$@,使其成为“$@”:
$cat >proxy.sh 
#!/bin/bash

./script.sh "$@"
^D

然后它保留原始报价:

one a b
two c
three

猜你在找的Bash相关文章