![將內部引號從 EnvironmentFile 變數傳遞到 ExecStart](https://rvso.com/image/718120/%E5%B0%87%E5%85%A7%E9%83%A8%E5%BC%95%E8%99%9F%E5%BE%9E%20EnvironmentFile%20%E8%AE%8A%E6%95%B8%E5%82%B3%E9%81%9E%E5%88%B0%20ExecStart.png)
在環境文件中我有:
EBUSD_OPTS="--scanconfig -d /dev/ttyEBUS -c /etc/ebusd --log=\"all notice\" --log=\"update error\""
在.service 檔案中:
EnvironmentFile=-/etc/default/ebusd
ExecStart=/usr/bin/ebusd $EBUSD_OPTS
我希望 --log= 之後的引號原封不動地傳遞給可執行文件,但這似乎不起作用。我嘗試過所有類型的雙引號、單引號、雙引號、三重轉義內引號、單外引號等,但沒有成功。
答案1
從環境文件中取出外部引號
EBUSD_OPTS=--scanconfig -d /dev/ttyEBUS -c /etc/ebusd --log="all notice" --log="update error"
並在 ExecStart 中新增大括號。
ExecStart=/usr/bin/ebusd ${EBUSD_OPTS}
我還必須在大括號後面有一個尾隨空格。