부모 셸 스크립트의 변수를 자식으로 내보낼 수 있습니까? 다음 두 개의 스크립트를 실행하면 항상 0으로 돌아가지만 3을 반환하려고합니다. 또한 변수 오류를 .bash_profile에 성공하지 않고 설정하고 추가하려고했습니다.쉘 스크립트에서 전역 변수를 자식에서 부모로 내보내기
테스트 아니,
$ cat test.sh
#!/bin/bash
error=0
./envtest.sh
echo $error
envtest.sh 주석 @chepner처럼
$ cat envtest.sh
#!/bin/bash
source ./test.sh
test=3
error=$test
echo $error
파일을 소싱 해 보셨습니까? . ./envtest.sh – kcoder24
아니요. 하위 프로세스에서 상위 환경에 영향을 줄 수는 없습니다. – chepner
어구 "global"을 사용합니다. 이는 아마도 수출 변수가 무엇인지 오해 할 것입니다. 이들은 * 환경 블록 *이라는 메모리 블록에 상주하므로 * 환경 변수 *로 알려져 있습니다. 각 프로세스에는 자체 환경 블록이 있습니다. 새로운 프로세스가 만들어지면 (** fork) 부모로부터 자식에게 복사 된 ** 영역 중 하나입니다. 따라서 자식은 사본에서 작동하고 환경 변수는 전역 적이거나 공유되지 않습니다. – cdarke