나는 Bash 의 목적 set
과 export
Bash에서 약간의 손실을 입었 습니다 (아마도 다른 껍질도 추측합니다).
환경 변수를 설정하기위한 것이라고 생각하지만 VARIABLE=VALUE
, 바로 그렇게 할 수 있습니까?
또한 입력 set
과 export
자체적으로 다른 값이 표시됩니다.
그래서 그들의 목적은 무엇입니까?
답변
export
현재 프로세스의 하위로 내보내는 경우 기본적으로 내 보내지 않습니다. 예를 들면 다음과 같습니다.
$ foo=bar
$ echo "$foo"
bar
$ bash -c 'echo "$foo"'
$ export foo
$ bash -c 'echo "$foo"'
bar
set
반면에 쉘 속성 (예 : 위치 매개 변수)을 설정합니다.
$ set foo=baz
$ echo "$1"
foo=baz
에 baz
할당되지 않은 foo
것은 단순히 리터럴 위치 매개 변수가됩니다. set
할 수있는 다른 많은 것들이 있습니다 (주로 쉘 옵션) help set
.
인쇄에 관해서는, export
인수없이 호출하면 쉘의 환경에서 모든 변수를 인쇄합니다. 내 보내지 않은set
변수도 인쇄합니다 . 또한 다른 객체를 내보낼 수도 있습니다 (이것이 이식 가능하지는 않지만) .help export
답변
참조 help set
: set은 쉘 속성과 위치 속성을 설정하는 데 사용됩니다.
내 보내지 않은 변수는 자식 프로세스에 의해 상속되지 않습니다. export
내보낼 변수를 표시하는 데 사용됩니다.