我有一个可以从 bash shell 手动运行的守护进程,如下所示:
daemon-binary --name some-name --separator '' /path/to/file
此守护进程的命令行选项应按/etc/default/daemonname
如下方式配置:
DAEMON_OPTS="--name some-name --separator '' /path/to/file"
此配置由启动守护进程的初始化脚本获取,该脚本通过传递DAEMON_OPTS
如下命令行选项来启动守护进程:
daemon-binary "$DAEMON_OPTS"
结果是,字符串''
再次被引用,而不是空字符串,而是daemon-binary
传递了两个单引号。因此,实际上结果与调用以下内容相同:
daemon-binary --name some-name --separator "''" /path/to/file
据我所知,bashDAEMON_OPTS
在每个空格处拆分,然后引用所有部分并将它们传递给daemon-binary
。
有没有什么方法可以写入 bash 变量DAEMON_OPTS
,使得当前正在扩展的内容"''"
将扩展为空字符串?
答案1
在这种情况下,不想要引用的扩展DAEMON_OPTS
:
DAEMON_OPTS="--name some-name --separator '' /path/to/file"
daemon-binary $DAEMON_OPTS