【问题标题】:pass named argument to program in shell [duplicate]将命名参数传递给shell中的程序[重复]
【发布时间】:2019-07-07 12:07:56
【问题描述】:

我想将一些额外的命名参数传递给 shell 脚本中的程序。假设我有以下脚本:

#!/bin/bash
FILE="/root/serv er/conf/config.yml"
EXEARG="-configFile \"$FILE\""
"/root/serv er/bin/server" $EXEARG

我将 EXEARG 放在单独的行上,因为我可能会在另一个进程中更改它(例如 jenkins build)。但是bash -x myscript 给了我这个:

+ FILE='/root/serv er/conf/config.yml'
+ EXEARG='-configFile "/root/serv er/conf/config.yml"'
+ '/root/serv er/bin/server' -configFile '"/root/serv' 'er/conf/config.yml"'

我期待:
'/root/serv er/bin/server' -configFile "/root/serv er/conf/config.yml"
我该怎么做?

【问题讨论】:

  • 将您的脚本粘贴到那里:shellcheck.net
  • 哇!以前不知道这个优秀的工具。问题解决了。谢谢@Cyrus
  • 顺便说一句,这也是BashFAQ #50的话题。

标签: bash quotes


【解决方案1】:

使用@Cyrus推荐的工具,我通过SC2089解决了

【讨论】:

    猜你喜欢
    • 2013-07-09
    • 2010-10-30
    • 2021-12-19
    • 2014-09-15
    • 1970-01-01
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    相关资源
    最近更新 更多