如何在内联脚本中使用 OpenVPN 环境变量?

如何在内联脚本中使用 OpenVPN 环境变量?

我正在尝试使用 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"'

相关内容