如何使用引号作为参数传递参数

时间:2015-08-06 15:40:17

标签: bash attributes options quotation-marks

我有一个运行带有一些选项的C ++应用程序的脚本。我想要做的是将C ++应用程序的选项作为脚本的属性。

options=$1
...
./app $options

问题在于,当我尝试传递

等选项时
./script '-a -C "9.626 0.262 8.266"'

-C选项的属性只是'“9.626”而不是整个字符串。任何想法如何解决这个问题?:)谢谢

1 个答案:

答案 0 :(得分:0)

您必须使用数组。

options=( -a -C "9.626 0.262 8.266" )
./script "${options[@]}"

script内,$1-a$2-C$39.626 0.262 8.266。 (请注意,引号不是$3的一部分;它们仅用于在将参数设置为script时保护空白。可能,您打算将所有三个参数传递给其他命令,并且您将

这样做
other_command "$1" "$2" "$3"

或更一般地说,为了容纳任意数量的参数

other_command "$@"