만들려고 해요2스크립트. 하나는 로컬 환경 변수를 설정하는 데 사용되고 다른 하나는 로컬 환경 변수를 설정 해제하는 데 사용됩니다.
먼저 두 스크립트 모두 다음 명령을 사용하여 생성됩니다.
touch set-proxy.sh
touch unset-proxy.sh
그런 다음 둘 다 실행 가능하게 만들었습니다.
chmod 700 set-proxy.sh
chmod 700 unset-proxy.sh
그런 다음 파일에 들어가서 set-proxy.sh
다음을 입력했습니다.
#!/bin/bash
`export HTTP_PROXY=http://nick:nick@proxy.***.***.com:****`
`export HTTPS_PROXY=http://nick:nick@proxy.***.***.com:****`
`export HTTP-PROXY=http://nick:nick@proxy.***.***.com:****`
`export HTTPS-PROXY=http://nick:nick@proxy.***.***.com:****`
`export http_proxy=http://nick:nick@proxy.***.***.com:****`
`export https_proxy=http://nick:nick@proxy.***.***.com:****`
`export http-proxy=http://nick:nick@proxy.***.***.com:****`
`export https-proxy=http://nick:nick@proxy.***.***.com:****`
그런 다음 파일에 들어가서 unset-proxy.sh
다음을 입력했습니다.
#!/bin/bash
`unset HTTP_PROXY`
`unset HTTPS_PROXY`
`unset HTTP-PROXY`
`unset HTTPS-PROXY`
`unset http_proxy`
`unset https_proxy`
`unset http-proxy`
`unset https-proxy`
모든 프록시 구성을 설정 해제하고 설정하는 빠른 방법이 정말로 필요합니다. 두 개의 스크립트를 만드는 것이 가장 쉬운 방법이라고 생각합니다.
그러나 실행 ./unset-proxy.sh
하거나 ./set-proxy.sh
다음 오류 메시지가 나타날 때:
./unset-proxy: line 5: unset: `HTTP-PROXY': not a valid identifier
./unset-proxy: line 6: unset: `HTTPS-PROXY': not a valid identifier
./unset-proxy: line 9: unset: `http-proxy': not a valid identifier
./unset-proxy: line 10: unset: `https-proxy': not a valid identifier
(그러면 나도 같은 결과를 얻습니다 set-proxy.sh
).
누구든지 내가 잘못하고 있는 부분과 이를 바로잡는 방법에 대해 올바른 방향을 알려줄 수 있다면 매우 감사하겠습니다. 감사해요.
답변1
여기에는 몇 가지 오류가 있는 것 같습니다. 첫째, 변수 할당 표현식은 백틱 안에 있어서는 안 됩니다. 백틱은 (다소 오래된) 구문입니다.명령 대체. 내 생각엔 당신이 원하는 건아포스트로피.참조 변수이는 문자열 리터럴을 보존하고 오류를 방지하기 위해 수행됩니다.매개변수 대체.
또한 변수 이름에는 하이픈을 사용할 수 없습니다. 이것은 에서 발췌한 것입니다.Bash 매뉴얼, 2장: 정의:
이름
문자, 숫자, 밑줄로만 구성되고 문자나 밑줄로 시작하는 단어입니다. 이름은 쉘 변수 및 함수 이름으로 사용됩니다. 또한 ~으로 알려진식별자.
자세한 내용은 다음 게시물도 참조하세요.
백틱과 하이픈을 제거하면 스크립트는 다음과 같을 수 있습니다.
#!/bin/bash
# set_proxy.sh
export HTTP_PROXY='http://nick:nick@proxy.***.***.com:****'
export HTTPS_PROXY='http://nick:nick@proxy.***.***.com:****'
export http_proxy='http://nick:nick@proxy.***.***.com:****'
export https_proxy='http://nick:nick@proxy.***.***.com:****'
그리고:
#!/bin/bash
# unset_proxy.sh
unset HTTP_PROXY
unset HTTPS_PROXY
unset http_proxy
unset https_proxy
마지막 참고 사항: 스크립트를 실행하면 하위 셸에서 실행되므로 환경 변수가 활성 셸 세션에 영향을 주지 않습니다. 예를 들어 다음 게시물을 참조하세요.
짧은 대답은 할 수 없다는 것입니다. 따라서 스크립트가 현재 쉘 환경을 수정하도록 하려면 이를 "가져와야" 합니다. 예를 들면 다음과 같습니다.
source set_proxy.sh
source unset_proxy.sh