Este é um caso em que você não deseja citar a expansão de DAEMON_OPTS
:
DAEMON_OPTS="--name some-name --separator '' /path/to/file"
daemon-binary $DAEMON_OPTS
Eu tenho um daemon que pode ser executado manualmente a partir de um shell bash como este:
daemon-binary --name some-name --separator '' /path/to/file
As opções de linha de comando para este daemon devem ser configuradas em /etc/default/daemonname
da seguinte forma:
DAEMON_OPTS="--name some-name --separator '' /path/to/file"
Esta configuração é originada por um script init que inicia o daemon passando as opções de linha de comando encontradas em DAEMON_OPTS
desta forma:
daemon-binary "$DAEMON_OPTS"
O resultado é que a string ''
é citada novamente e, em vez de uma string vazia, o daemon-binary
é passado em dois singles. Então, na verdade, o resultado é o mesmo que chamar:
daemon-binary --name some-name --separator "''" /path/to/file
Tanto quanto eu entendo, o bash divide o DAEMON_OPTS
em cada espaço em branco, então, cita todas as partes e as passa para o daemon-binary
.
Existe alguma maneira de escrever a variável bash DAEMON_OPTS
de forma que o que está sendo expandido para "''"
será expandido em uma string vazia?
Este é um caso em que você não deseja citar a expansão de DAEMON_OPTS
:
DAEMON_OPTS="--name some-name --separator '' /path/to/file"
daemon-binary $DAEMON_OPTS
Tags bash