我想从服务的 systemd 配置文件 (*.conf)
中导入一些环境变量到 bash 中。
例子
在 /etc/systemd/system/test.service.d/*.conf
下是一些配置文件,例如...
[Service]
Environment="VAR1=v1"
Environment="Var2=v2"
根据文件的字母顺序,它们可以覆盖某些值。 我需要的是我的 bash 脚本中变量的值。
是否有直接命令(来自 systemd)将变量导入正在运行的 bash 脚本? 我是否必须解析 .conf 文件并导入变量手册?
备注:bash 脚本不是作为 systemd 服务启动的。
最佳答案
我不知道有任何 systemd
命令可以让您直接导入此类变量。
但是,将变量获取到脚本中应该不是什么大问题(前提是您事先知道需要哪些变量以及文件中的语法)。您可以执行以下操作:
MyVar1="$(grep -i 'Environment=\"VAR1=' /folder/file | cut -f3 -d'=' | cut -f1 -d'"')"
echo "$MyVar1"
v1
一些评论:请注意 grep -i
使搜索不区分大小写。请注意在 \"VAR1=
上转义引号的反斜杠。请注意,cut -f3 -d'='
会将字符串分成由 =< 分隔的字段
,它将删除第三个字段之前的所有内容——在这种情况下,它将删除第二次出现 =
之前(包括在内)的所有内容。
关于linux - 从 systemd 配置加载环境到 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41162715/