명령 행에서 변수를 어떻게 설정 해제합니까?


80

프록시를 설정하기 위해 다음 명령을 시도했습니다 yaourt.

export ALL_PROXY=http://proxy.example.com:8080

문제는 프록시 설정을 해제하는 방법입니다 yaourt. 일반적으로 현재 쉘에서 변수 값을 어떻게 설정 해제 할 수 있습니까?


7
시도unset ALL_PROXY
coffeMug

@coffeMug뿐만 아니라 답변으로 그것을 만들 수도 있습니다, 당신은 또한 여기에서 몇 가지 정보를 훔치는 고려할 수 : stackoverflow.com/a/12263914/1081936
terdon

수락 된 답변 외에도 나머지 쉘 세션에서 설정하거나 변경하지 않는 환경 변수를 사용하는 명령이 자주 실행되는 경우 다음과 같이 실행할 수 있습니다 $ ALL_PROXY=http://proxy.example.com:8080 yaourt. 명령 실행. FOO=bar BAZ=bat명령을 실행하기 전에 원하는만큼 변수를 넣을 수 있습니다 .
only none

답변:


112

환경 변수를 제거하려면 다음을 실행하십시오.

unset ALL_PROXY

환경 변수는 프로그램과 프로그램이 시작될 때만 적용됩니다. 하나의 쉘 창에서 환경 변수를 설정하면 다른 쉘 창에 영향을 미치지 않습니다.

export ALL_PROXY=…초기화 파일에 추가 한 경우 해당 파일을 제거하십시오.

export인수없이 실행 하여 현재 쉘에 어떤 환경 변수가 설정되어 있는지 확인할 수 있습니다.

해당 쉘에서 시작한 프로그램에서 쉘 변수를 사용할 수있게 export VAR하려면 할당 후 실행 VAR=VALUE하거나 두 개 ( export VAR=VALUE)를 결합하여 내 보내야합니다 .


19

bash에서 바운드 변수를 설정 해제하려면 unset VARIABLE( unset ALL_PROXY경우에 따라)를 사용 하십시오. 이 명령은 실제로 변수를 삭제합니다. 다음과 같이 변수 값을 비워 둘 수도 있습니다.

VARIABLE=

또는

VARIABLE=""

차이점은 후자의 두 명령이 변수를 삭제하지 않는다는 것입니다. -uwith 플래그를 사용하여 set대체하는 동안 설정되지 않은 변수를 오류로 처리하도록 하여 차이를 확인할 수 있습니다 .

/home/user1> var=""
/home/user1> echo $var

/home/user1> set -u
/home/user1> echo $var

/home/user1> unset var
/home/user1> echo $var
-bash: var: unbound variable

위의 예에서, 배쉬에 대한 불만을 var예상 오류 (이 두 번째 에코 명령에서 발생하지 않습니다 의미이다 (그 값을 설정 해제 후) 언 바운드 var인 값이 empty또는 null).


쉘 스크립트 파일에 변수가 있고 그 파일을 소싱하면 어떻게 설정을 해제합니까?
Abhinav

unset스크립트에서 @Abhinav 사용 . 동일합니다.
coffeMug
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.