我正在尝试使用 OpenVPN 内联提供的环境变量。
这工作得很好:
OpenVPN 客户端配置:
[...]
up /tmp/script.sh
[...]
/tmp/script.sh:
#!/bin/bash
echo $ifconfig_remote
但是,如果我尝试内联执行此操作,则在配置文件中它不起作用。
OpenVPN 客户端配置:
[...]
up '/bin/echo $ifconfig_remote'
[...]
它确实打印了$ifconfig_remote
.我还尝试将其括在${ifconfig_remote}
或反引号中。
有没有一种方法可以在不使用外部脚本的情况下访问/打印环境变量?
答案1
这听起来像是 OpenVPN 直接exec()
执行给定的命令,而不是将其传递给 shell。结果是您没有获得 shell 插值,这在您的情况下意味着您的变量按字面意思使用。
如果您不想使用脚本,请尝试显式调用 shell:
up '/bin/sh -c "echo $ifconfig_remote"'