답변:
이것은 Bash 맨 페이지에서 발췌 한 것입니다.
export [-fn] [name [= word]] ...
export -p
제공된 이름은 이후에 실행되는 명령 환경으로 자동 내보내기하도록 표시됩니다. -f 옵션이 제공되면 이름은 함수를 나타냅니다.
현재 환경에서만 변수가 필요한 경우 내보내기를 사용할 필요가 없습니다.
var=value
편집하다:
내보내기없이 : 현재 환경 만. 내보내기 : 현재 환경 및 하위 환경.
다음은 자식 환경에서 변수의 가용성에 대한 내보내기의 영향에 대한 데모이며 자식 환경의 변경은 부모에 영향을 미치지 않습니다.
$ var1=123
$ export var2=456
$ echo "parent [$var1] [$var2] [$var3]"
parent [123] [456] []
$ var3=789 bash -c 'echo "child [$var1] [$var2] [$var3]"; var1=111; var2=222; var3=333; echo "child [$var1] [$var2] [$var3]"'
child [] [456] [789]
child [111] [222] [333]
$ echo "parent [$var1] [$var2] [$var3]"
parent [123] [456] []
첫 번째 에코 후 ( echo "parent..."
)는 모두 있기 때문에 "123"과 "456"을 참조 var1
하고 var2
현재의 환경에서 활성화됩니다. var3
아직 설정되지 않았기 때문에 값이 표시 되지 않습니다.
" var3=...
"(으)로 시작하는 줄 var1
은 내 보내지 않았기 때문에 값 이 표시되지 않습니다. 당신은 할 값을 볼 수 var2
가 있기 때문에 한 수출했다. var3
하위 환경에 대해서만 설정 되었기 때문에 값이 표시 됩니다 .
( 옵션 bash -c
에 대한 인수의 내용으로 스크립트를 실행하는 것과 같습니다 -c
. 스크립트 또는 기타 실행 파일 또는이 경우 bash -c
현재 환경의 자식이되는 인수 는 결과적으로 자식입니다. 부모의.)
"스크립트"에서 변수 값이 변경됩니다. 이제 새로운 값을 출력합니다.
"스크립트"가 완료되면 실행은 상위 환경 (이 경우 명령 행)으로 돌아갑니다. 마지막 에코 이후에는 자식 환경에서 변경 한 내용이 부모에 영향을 미치지 않기 때문에 원래 값이 표시됩니다.
export
이러한 하위 환경에서 변수를 사용할 수 있도록 하는 것이 목적입니다 .
너는 ~라고 말한다
항상 export 명령을 사용하여 환경 변수를 설정하고 있습니다.
당신이 말한대로 환경 변수가 어떻게 지속되는지 어떻게 물어 보는 것처럼 들립니다. 이를 위해서는 export VAR="foo"
$ HOME / .bash_profile 파일에 bash를 사용해야합니다 (bash를 사용하는 경우). 환경 변수를 루트 이외의 모든 사용자에 대해 유지하려면 / etc / profile에 추가하십시오. 루트 사용자에게도 추가하려면 /root/.bash_profile에서 설정하십시오.
이것은 bash가 선택한 쉘인 모든 로그인 쉘에서 작동합니다. 비 로그인 쉘의 경우 .bashrc를 사용해야합니다. 나는 다른 포탄을 제공 할 통찰력이 없다 : D
수출이 가장 간단한 방법이므로 수출하지 마십시오.
export VARIABLE=value # for Bourne, bash, and similar shells
setenv VARIABLE value # for csh and similar shells
FOO=BAR; executethisprogram
, 프로그램 executethisprogram
은 variable 값을 알 수 없습니다 FOO
. 반면에 다음을 사용할 때 : FOO=BAR; export FOO; executethisprogram
프로그램 executethisprogram
은 variable의 값을 알게 FOO
됩니다.
export FOO
변수를 표시하는 명령입니다 FOO
. 해당 부모는 스크립트 또는 대화식 쉘일 수 있습니다.
다음과 같이 할 수도 있습니다 :
VAR=val application
예를 들면 다음과 같습니다.
LANG=C ls --help
영어로 출력.
LANG=pl_PL ls --help
폴란드어로 출력 (사용 가능한 경우).
과거에는 sh에서 VAL = val을 내보낼 수 없었습니다. 당신은해야했다
VAL=val; export VAL
ls
는 현재 (상위) 환경에서 해당 변수의 값에 영향을주지 않고 하위 환경에 대한 변수 값 (예 :)을 설정 합니다.
ls
프로세스가 실행 된 프로세스의 하위입니다. 내가 입력하면 ls
명령 프롬프트에서 대화 형 쉘은 부모와 ls
아이입니다. 내가 사용하는 스크립트가 있으면 ls
스크립트는 부모이고 ls
자식입니다.