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"'