【发布时间】: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的话题。