쉘 프로그래밍에서 "내보내기"는 무엇입니까? [복제]
이 질문에는 이미 답변이 있습니다.
내가 알 수있는 한 변수 할당은 "내보내기"가 선행 아닌지에 관계없이 동일합니다. 그게 뭐야?
셸에서 실행하는 다른 프로그램 (및 다른 프로그램에서 실행하는 프로그램 등)을 환경 변수로 실행할 수있는 다른 프로그램 $HOME
과 같은 내에서 보낸 변수를 $PATH
사용할 수 있습니다. 다른 프로그램에서는 일반 (내보내기되지 않은) 변수를 사용할 수 없습니다.
$ env | grep '^variable='
$ # No environment variable called variable
$ variable=Hello # Create local (non-exported) variable with value
$ env | grep '^variable='
$ # Still no environment variable called variable
$ export variable # Mark variable for export to child processes
$ env | grep '^variable='
variable=Hello
$
$ export other_variable=Goodbye # create and initialize exported variable
$ env | grep '^other_variable='
other_variable=Goodbye
$
자세한 정보 는 GNU Bash 매뉴얼에 export
내장 된 항목 과 명령 실행 환경 및 환경 섹션을 참조하십시오 .
익스포트되지 않은 서브 쉘이 실행되는 서브 쉘 변수 ( ... )
표기법으로 사용할 수 있습니다 .
$ othervar=present
$ (echo $othervar; echo $variable; variable=elephant; echo $variable)
present
Hello
elephant
$ echo $variable
Hello
$
서브 쉘은 익스포트 여부에 상관없이 자체 변수 사본을 표시 변경, 실행되는 프로세스에서 표시되는 값에 영향을 줄 수있는 서브 쉘의 사항은 상위 쉘의 변수에 영향을 줄 수 없습니다.
서브 쉘에 대한 일부 정보 는 Bash 매뉴얼의 명령 그룹화 및 명령 실행 환경 에서 사용할 수 있습니다 .
서브 프로세스에 지정을 표시합니다.
jcomeau@intrepid:~/rentacoder/bin2txt$ foo=bar
jcomeau@intrepid:~/rentacoder/bin2txt$ bash -c 'echo $foo'
jcomeau@intrepid:~/rentacoder/bin2txt$ export foo
jcomeau@intrepid:~/rentacoder/bin2txt$ bash -c 'echo $foo'
bar
글쎄, 그것은 일반적으로 껍질에 달려 있습니다. 의 경우 bash
변수를 "내보내기 가능"으로 표시하여 실행중인 모든 하위 프로세스에 대해 환경에 표시됩니다.
내 보내지 않은 변수는 현재 프로세스 (쉘) 에서만 볼 수 있습니다 .
로부터 bash
매뉴얼 페이지
export [-fn] [name[=word]] ...
export -p
이름은 이후에 실행되는 명령 환경으로 자동 내보내기 표시됩니다.
경우
-f
옵션이 주어, 이름이 기능을 참조하십시오. 이름이 지정되지 않을 경우 갑자기거나-p
옵션이 제공되면 모든 이름 목록이 인쇄됩니다.이
-n
옵션을 사용하면 내보내기 속성이 각 이름에서 제거됩니다.변수 이름 다음에 나오면 변수
=word
값이 설정word
됩니다.
export
유효하지 않은 옵션이 있고 이름 중 하나가 유효한 쉘 변수 이름 이 아니거나-f
함수가 아닌 이름이 제공되지 거나 함수가 아닌 이름이 제공 되는 종료 상태 0을 리턴합니다 .
typeset
명령을 사용하여 변수를 내보내기 가능하게 설정하고 사용하여 이후의 모든 변수 작성 또는 수정 사항을 자동으로 표시 할 수도 있습니다 set -a
.
참고 URL : https://stackoverflow.com/questions/7411455/what-does-export-do-in-shell-programming
'IT' 카테고리의 다른 글
MySQL JDBC 드라이버 링크는 무엇입니까? (0) | 2020.08.02 |
---|---|
URL 동작 매개 변수? (0) | 2020.08.02 |
PowerShell 및-포함 연산자 (0) | 2020.08.02 |
ObjectiveC에서 변수 위치의 선언 / 정의? (0) | 2020.08.02 |
패키지 서브 디렉토리의 Python Access 데이터 (0) | 2020.08.02 |