셸 프로그래밍에서 "내보내기"는 무엇을 합니까?
변수 할당은 "export"가 선행되는지 여부에 관계없이 동일합니다.뭐에 쓰는 거야?
다음과 같은 내보낸 변수$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 매뉴얼의 빌트인 항목 및 명령 실행 환경 및 환경에 대한 섹션을 참조하십시오.
내보내기되지 않은 변수는 다음을 통해 실행되는 하위 쉘에서 사용할 수 있습니다.( ... )이러한 서브셸은 메인 셸의 직접 클론이기 때문에 다음과 같은 표기법이 있습니다.
$ othervar=present
$ (echo $othervar; echo $variable; variable=elephant; echo $variable)
present
Hello
elephant
$ echo $variable
Hello
$
서브셸은 내보내기 여부에 관계없이 변수의 자체 복사본을 변경할 수 있으며 실행되는 프로세스에서 볼 수 있는 값에 영향을 줄 수 있지만 서브셸의 변경은 상위 셸의 변수에 영향을 줄 수 없습니다.
하위 쉘에 대한 일부 정보는 Bash 매뉴얼의 명령 그룹화 및 명령 실행 환경에서 확인할 수 있습니다.
서브프로세스에 할당을 표시합니다.
$ foo=bar
$ bash -c 'echo $foo'
$ export foo
$ bash -c 'echo $foo'
bar
글쎄요, 보통 껍데기에 따라 다르죠.위해서bash는 변수를 "내보낼 수 있음"으로 표시합니다.즉, 실행하는 모든 자식 프로세스에 대해 해당 변수가 환경에 표시됩니다.
내보내지 않은 변수는 현재 공정(쉘)에서만 볼 수 있습니다.
에서bashman 페이지:
export [-fn] [name[=word]] ...
export -p제공된 이름은 이후에 실행된 명령의 환경으로 자동 내보내도록 표시됩니다.
이 경우,
-f옵션을 지정하면 이름은 함수를 나타냅니다.이름이 지정되지 않은 경우 또는-p옵션을 지정하면 이 셸에서 내보내는 모든 이름의 목록이 인쇄됩니다.그
-n옵션을 지정하면 내보내기 속성이 각 이름에서 삭제됩니다.변수 이름 뒤에 다음 이름이 이어지는 경우
=word변수 값은 다음과 같이 설정됩니다.word.
export비활성 옵션이 없거나 이름 중 하나가 유효한 셸 변수 이름이 아닌 경우를 제외하고 종료 상태0 을 반환합니다.-f는 함수가 아닌 이름으로 제공됩니다.
를 내보낼 수 설정할 수 .typeset하여 미래의 또는 .set -a.
언급URL : https://stackoverflow.com/questions/7411455/what-does-export-do-in-shell-programming
'programing' 카테고리의 다른 글
| 로컬 머신에서 Azure Reposit으로 프로젝트 코드를 Import하는 방법 (0) | 2023.04.22 |
|---|---|
| 변수의 첫 번째 문자 대문자(bash 포함) (0) | 2023.04.22 |
| Git for Windows의 파일 이름이 너무 깁니다. (0) | 2023.04.22 |
| Azure SQL Database Web vs Business Edition (0) | 2023.04.22 |
| PostgreSQL 테이블 생성(존재하지 않는 경우) (0) | 2023.04.22 |