lynx
내 시스템에는 프록시를 통과할 수 없는 이러한 스크립트에 의존하는 스크립트가 많이 있습니다 . 보다 구체적으로 사용자 ID 및 비밀번호 필드를 제외한 전역 프록시 설정을 성공적으로 검색하려면 대신 명령줄에서 사용하는 것이 lynx
좋습니다 .-pauth
lynx -pauth=proxyuserid:proxypass
Lynx를 간접적으로 호출하기 때문에 쉽게 할 수 없습니다. 하지만 모든 Lynx 호출에 대해 전역적으로 이러한 설정을 적용하려면 어떻게 해야 합니까? 구성 파일 - 프록시 인증과 관련된 내용을 찾을 수 없습니다. 같은 이름을 가진 bash 쉘 래퍼는 lynx
실제 lynx
with를 호출합니다 -pauth
. 어떻게든 작동하게 할 수 없습니다.
고쳐 쓰다. 프록시를 완전히 설명하는 환경 변수가 있습니다. 예를 들어
http_proxy=http://userid:pass@proxyserver:port
Lynx는 프록시 서버와 포트를 올바르게 읽지만 어떤 이유로 사용자/비밀번호 필드를 읽지 못합니다(예: wget과 달리).
그래서 이제 다음과 같이 lynx 래퍼 스크립트를 사용합니다.
envproxy=${http_proxy%@*}
/usr/bin/lynx -pauth=${envproxy:7} "$@"
답변1
lynx
경로를 지정하지 않고 스크립트/프로그램을 호출하면 래퍼 스크립트로 대체할 수 있으므로 lynx
시스템은 변수에 나열된 디렉터리에서 이를 검색합니다 PATH
.
lynx
예를 들어 를 입력하여 위치를 찾아야 합니다 type lynx
.
내 생각엔 그럴 수도 있을 것 같아 /usr/bin/lynx
.
PATH
호출된 스크립트/프로그램의 변수는 lynx
위치(예:) 앞에 다른 디렉토리(예:)가 있어야 합니다. 그렇지 않은 경우 확장이 필요할 수 있습니다./usr/local/bin
lynx
/usr/bin
PATH
예:
설정 이 다음과 같다고 가정 PATH
합니다.
PATH=/usr/bin:/bin:/sbin:/usr/bin/X11
당신은 그것을 확장 할 수 있습니다
PATH="/usr/local/bin:$PATH"
PATH
스크립트/프로그램에 대해 설정된 시작 스크립트 중 하나에서. 이를 수행하는 정확한 방법은 이러한 스크립트/프로그램이 호출되는 방법에 따라 다릅니다.
/usr/local/bin/lynx
그런 다음 다음과 같은 쉘 스크립트를 작성할 수 있습니다.
#! /bin/sh
# Here you could do what is needed to get the user name and password for the
# proxy authentication and use these instead of hard coded values.
/usr/bin/lynx -pauth=proxyuserid:proxypass "$@"
스크립트/프로그램을 실행하려고 하면 lynx foo bar
먼저 스크립트를 찾은 /usr/local/bin/lynx
다음 /usr/bin/lynx
.
그러면 스크립트가 호출됩니다 /usr/bin/lynx -pauth=proxyuserid:proxypass "foo" "bar"
.
물론 다른 위치를 대신 사용할 수도 있습니다 /usr/local/bin
.
스크립트/ 프로그램 이 /usr/bin/lynx foo bar
./usr/bin/lynx
/usr/bin/lynx.real
/usr/bin/lynx
/usr/bin/lynx.real