WORKING_FILE이라는 내 보낸 변수에서 작동하는 많은 bash 스크립트가 있습니다.하위 변수에서 내 보낸 변수를 수정하는 방법
이 변수는 쉘에서 시작된 첫 번째 스크립트 인 main.sh 스크립트에서 내보내지며 실행 중 다른 스크립트 (예 : child.sh)를 호출합니다.
사실, child.sh는 WORKING_FILE을 main.sh 환경의 사본으로보고 WORKING_FILE을 변경하려고 시도하면 값은 실행이 끝날 때 손실됩니다.
질문 : child.sh가 WORKING_FILE 값을 수정하고 파일을 사용하지 않고 main.sh에서도 WORKING_FILE 값을 어떻게 바꿀 수 있습니까?
감사합니다. :)
일반적으로 하위 환경에서는 부모 환경을 수정할 수 없습니다. 아마 자식 스크립트를'source '하고 싶을 것이다. – anishsane
이 효과를 얻는 한 가지 방법은 $ WORKING_FILE의 값을 임시 파일에 저장하고 WORKING_FILE을 임시 파일의 경로로 설정 한 다음 필요할 때 임시 파일의 내용을 변경하는 것입니다. –
또는 자식이 새 값을 알려진 FD로 출력하도록하고, 리디렉션을 통해 부모의 FD를 읽고 부모의 변수 복사본을 변경할 수 있습니다. – mpez0