如何将带引号的参数作为参数传递
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 "$@"
我有一个脚本可以运行带有一些选项的 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 "$@"