서브쉘 스크립트에서 변수 공유

서브쉘 스크립트에서 변수 공유

count와 같은 일부 변수가 포함된 구성 파일을 실행하는 기본 셸이 있습니다. 메인 셸을 호출하면 구성 파일이 로드된 다음 다른 셸 스크립트가 호출됩니다. 내부 쉘 스크립트가 기본 쉘 스크립트가 로드한 변수 개수에 액세스할 수 있기를 원합니다. 어떻게 해야 하나요? 내보내기를 시도했지만 첫 번째 수준 변수 가져오기에만 도움이 되었습니다.

답변1

export프로세스에 정의된 변수는 자식 프로세스에서 읽을 수 있지만 자식 프로세스에서 변수가 수정되면 각 프로세스에는 고유한 환경 변수가 있으므로 호출자 프로세스에서는 변수가 변경되지 않습니다. 아마도 해결책은 서브쉘이 출력을 쓰고 호출자 쉘이 출력을 읽는 것일 수 있습니다.

count=$(subprocess)

답변2

내부 스크립트를 별도의 프로세스라고 부르지 말고 포함된 스크립트라고 부르세요.

. /path/to/inner_script

(점) 내장 함수(bash에서도 이 이름을 사용할 수도 있음)를 통해 .읽은 스크립트는 source호출자와 동일한 쉘 환경에서 실행됩니다. 특히 그들은 변수를 공유합니다.

관련 정보