Я разрабатываю служебный файл systemd для какого-то плагина. Мне нужно включить туда два файла окружения: первый для основной программы (пусть будет main.env
), второй - для плагина (plugin.env
). Плагину нужна переменная VAR
должно быть определено до его запуска.
Иногда пользователи могут захотеть определить эту переменную в main.env
, иногда эта переменная может отсутствовать, и на самом деле я не контролирую файл среды основной программы, эта переменная может быть удалена из него в следующем выпуске как необязательная.
Поэтому я хочу предоставить запасное значение для переменной, но только в том случае, если оно еще не установлено. Также я хочу, чтобы это резервное значение было фактически определено в plugin.env
чтобы пользователи могли изменять это значение локально, не теряя его после обновления, и я использую эту переменную в том же файле для установки следующих переменных.
В bash то, что я хочу, выглядит так: : ${VAR:=fallback_value}
. Можно ли записать это в файл окружения systemd?
Я просмотрел мануал (Вот), но, увы, ничего актуального не нашел.
Environment=VAR=fallback_value
делает то, что я хочу. Точно:
VAR
если оно не определено ни в одном файле среды (фактически, непосредственно перед чтением файлов конфигурации, это значение просто перезаписывается, если оно определено в этих файлах)plugin.env
так что я могу определить в этом файле что-л. вроде OPTION=${VAR}/value1
будучи уверенным, что VAR
никогда не бывает пустым.ссылка, grep для «Environment =» там.