我想运行一些命令,让我们命名它从我的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'