相关疑难解决方法(0)

为什么 bash 参数扩展在 systemd 服务文件中不起作用?

我正在尝试使用systemd'sEnvironmentFile并在文件中设置命令时向该命令添加一个选项。我在单元文件中有以下内容:

ExecStart=/usr/bin/bash -c "echo ${PORT:+port is $PORT}"
Run Code Online (Sandbox Code Playgroud)

当我启动服务时它不会回显任何内容。

以下按预期工作:

ExecStart=/usr/bin/bash -c "echo port is $PORT"
Run Code Online (Sandbox Code Playgroud)

这意味着文件被正确读取。

参数替换也适用于命令行:

$ PORT=1234 bash -c 'echo ${PORT:+port is $PORT}'
port is 1234
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

linux bash environment-variables systemd

19
推荐指数
1
解决办法
2万
查看次数

标签 统计

bash ×1

environment-variables ×1

linux ×1

systemd ×1