У меня есть демон, который можно запустить вручную из оболочки bash следующим образом:
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
Насколько я понимаю, bash разбивает DAEMON_OPTS
на каждом пробеле, затем цитирует все части и передает их daemon-binary
.
Есть ли способ записать переменную bash DAEMON_OPTS
так что то, что сейчас расширяется до "''"
будет расширена в пустую строку?
Это тот случай, когда вы не хочу процитировать расширение DAEMON_OPTS
:
DAEMON_OPTS="--name some-name --separator '' /path/to/file"
daemon-binary $DAEMON_OPTS