我正在为某个插件设计一个 systemd 服务文件。我需要在其中包含两个环境文件:第一个用于主程序(假设为main.env
),第二个 — 用于插件(plugin.env
)。插件VAR
在启动之前需要定义一些变量。
有时用户可能希望在中定义此变量main.env
,有时此变量可能丢失,实际上我无法控制主程序的环境文件,此变量可能会在下一个版本中作为非强制性变量从中删除。
因此,我想为变量提供一个后备值,但仅限于尚未设置的情况下。我还希望实际定义此后备值,plugin.env
以便用户可以在本地更改此值而不会在更新后丢失它,并且我在同一文件中使用此变量来设置下一个变量。
在 bash 中,我想要的是这样的:: ${VAR:=fallback_value}
。是否可以在 systemd 环境文件中写入这个?
我查看了手册(这里),但遗憾的是,没有找到任何相关内容。
答案1
Environment=VAR=fallback_value
满足我的要求。确切地说:
VAR
当且仅当它未在任何环境文件中定义时才定义(实际上,在读取配置文件之前,如果在这些文件中定义了该值,则该值会被覆盖)- 在包含时使其定义
plugin.env
,以便我可以在此文件中定义某些内容,以OPTION=${VAR}/value1
确保它VAR
永远不会为空。
參考,在那里 grep «Environment=»。