使用 bash 变量将空字符串作为命令行参数传递给命令

使用 bash 变量将空字符串作为命令行参数传递给命令

我有一个可以从 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

相关内容