将空string作为命令行参数使用bashvariables传递给命令

我有一个守护进程,可以像这样从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