如何将带引号的参数作为参数传递

How to pass arguments with quotation marks as an arguments

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

options=
...
./app $options

问题是当我尝试传递像

这样的选项时
./script '-a -C "9.626 0.262 8.266"'

-C 选项的属性只是“9.626”而不是整个字符串。有什么解决办法吗?:) 谢谢

你必须使用数组。

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

script里面,</code>是<code>-a</code>是<code>-C</code>是<code>9.626 0.262 8.266。 (注意引号不是 </code> 的一部分;它们仅用于在将参数设置为 <code>script 时保护空格。大概,您打算将所有三个参数传递给其他命令,并且您会用

这样做
other_command "" "" ""

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

other_command "$@"