인라인 스크립트에서 OpenVPN 환경 변수를 사용하는 방법은 무엇입니까?

인라인 스크립트에서 OpenVPN 환경 변수를 사용하는 방법은 무엇입니까?

OpenVPN에서 제공하는 환경변수를 인라인으로 사용하려고 합니다.

이것은 잘 작동합니다:

OpenVPN 클라이언트 구성:

[...]
up /tmp/script.sh
[...]

/tmp/script.sh:

#!/bin/bash
echo $ifconfig_remote

그러나 이 작업을 인라인으로 수행하려고 하면 구성 파일에서 작동하지 않습니다.

OpenVPN 클라이언트 구성:

[...]
up '/bin/echo $ifconfig_remote'
[...]

print 를 사용 하거나 백틱 $ifconfig_remote으로 포장해 보았습니다 .${ifconfig_remote}

외부 스크립트를 사용하지 않고 환경 변수에 액세스/인쇄하는 방법이 있습니까?

답변1

exec()OpenVPN이 주어진 명령을 셸에 전달하는 대신 직접 실행하는 것처럼 들립니다 . 결과적으로 쉘 보간을 얻을 수 없습니다. 이는 귀하의 경우 변수가 문자 그대로 사용됨을 의미합니다.

스크립트를 사용하지 않으려면 명시적으로 셸을 호출해 보세요.

up '/bin/sh -c "echo $ifconfig_remote"'

관련 정보