zsh의 .sh 파일에서 환경 변수를 내보내는 방법은 무엇입니까? [복사]

zsh의 .sh 파일에서 환경 변수를 내보내는 방법은 무엇입니까? [복사]

다음 쉘 스크립트가 있습니다

TEST=/foopath
export TEST

test.sh내가 실행하는 파일에 있습니다.chmod +x test.sh

실행할 때 실행하여 출력을 볼 ./test.sh수 있으면 좋겠지 만 아무것도 표시되지 않습니다.echo $TEST/foopath

$TEST위 스크립트를 실행할 때 변수를 내보내려면 어떤 변경이 필요합니까 ./test.sh? 이것이 bash와 zsh의 차이점입니까?

답변1

이것이 상위 쉘과 하위 쉘의 차이점입니다.

을 실행하면 test.sh이를 실행하기 위한 새 셸이 시작되고 해당 셸 내에서 변수가 내보내집니다. 이는 새 쉘이 자신과 자체 하위 쉘에 대해 알고 있음을 의미합니다. 시작한 부모 쉘은 test.sh전혀 영향을 받지 않습니다(영향을 받을 수 없습니다).

현재 셸에서 변수를 보려면 다음 스크립트를 가져와야 합니다.

. test.sh

.(와 사이에 공백이 있습니다 test.sh.) test.sh새 쉘을 시작하지 않고 실행 됩니다 .

관련 정보