【问题标题】:How to pass arguments with quotation marks as an arguments如何将带引号的参数作为参数传递
【发布时间】:2015-10-29 20:33:56
【问题描述】:

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

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

问题是当我尝试传递像

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

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

【问题讨论】:

    标签: bash attributes options quotation-marks


    【解决方案1】:

    你必须使用一个数组。

    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 "$@"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-08
      • 2016-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多