Bash 스크립트 - 로컬 환경 변수 설정(프록시)

Bash 스크립트 - 로컬 환경 변수 설정(프록시)

만들려고 해요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

관련 정보