我有一个守护进程,可以像这样从bash shell手动运行:
daemon-binary --name some-name --separator '' /path/to/file
该守护程序的命令行选项应该在/etc/default/daemonnameconfiguration,如下所示:
DAEMON_OPTS="--name some-name --separator '' /path/to/file"
这个configuration来自于一个启动守护进程的初始化脚本,它传递了DAEMON_OPTS的命令行选项,如下所示:
daemon-binary "$DAEMON_OPTS"
结果是,string''被再次引用,而不是一个空stringdaemon-binary得到通过两个单一的。 所以实际上结果和调用一样:
daemon-binary --name some-name --separator "''" /path/to/file
据我了解,bash在每个DAEMON_OPTS分割DAEMON_OPTS ,然后引用所有的块并将它们传递给daemon-binary 。
有没有什么办法可以写出bashvariablesDAEMON_OPTS这样当前被扩展为"''"将被扩展为一个空string?
在这种情况下,您不想引用DAEMON_OPTS的扩展:
DAEMON_OPTS="--name some-name --separator '' /path/to/file" daemon-binary $DAEMON_OPTS