bash-builtins ‘set’과 ‘export’는 무엇을합니까? exportBash에서 약간의 손실을 입었 습니다

나는 Bash 의 목적 setexportBash에서 약간의 손실을 입었 습니다 (아마도 다른 껍질도 추측합니다).

환경 변수를 설정하기위한 것이라고 생각하지만 VARIABLE=VALUE, 바로 그렇게 할 수 있습니까?

또한 입력 setexport자체적으로 다른 값이 표시됩니다.

그래서 그들의 목적은 무엇입니까?



답변

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내보낼 변수를 표시하는 데 사용됩니다.


답변