Bash引号禁用转义

我想运行一些命令,让我们命名它从我的bash脚本“testing”,并从那里把一些从bashvariables的参数。

我的脚本:

#!/bin/bash -x PARAMS="-A 'Foo' -B 'Bar'" ./test $PARAMS 

我有:

 + PARAMS='-A '\''Foo'\'' -B '\''Bar'\''' + ./test -A ''\''Foo'\''' -B ''\''Bar'\''' 

这是不对的!

另外一个案例:

 #!/bin/bash -x PARAMS='-A '"'"'Foo'"'"' -B '"'"'Bar'"'" ./test $PARAMS 

结果也是可悲的:

 + PARAMS='-A '\''Foo'\'' -B '\''Bar'\''' + ./test -A ''\''Foo'\''' -B ''\''Bar'\''' 

所以,问题是 – 我怎样才能使用bashvariables作为一些命令的命令行参数。 variables就像“-A'Foo'-B'Bar'”(确切的用单引号),结果必须调用程序“./test”,参数为“-A”Foo'-B'Bar'“这个:

 ./test -A 'Foo' -B 'Bar' 

谢谢!

使用BASH数组来存储全部或部分命令行比较安全:

 params=(-A 'Foo' -B 'Bar') 

然后将其称为:

 ./test "${params[@]}" 

这将是相同的:

 ./test -A 'Foo' -B 'Bar'