根据systemd-run文档,-setenv
选项可用于“使用指定的环境变量集运行服务进程”。
但是,似乎环境变量实际上不可用于该过程:
# systemd-run -t --setenv=TEST=Success echo TEST:$TEST
Running as unit run-20705.service.
Press ^] three times within 1s to disconnect TTY.
TEST:
我是否误解了--setenv
选项的用法?运行systemd版本219。
答案 0 :(得分:3)
您需要阻止bash在运行systemd命令之前解析$TEST
。
echo也无法解决环境变量。在systemd过程中需要Bash来解决TEST
所以你需要运行以下内容:
systemd-run -t --setenv=TEST=Success 'bash -c echo TEST:$TEST'