예를 들어. 별도로 보관하고 실행하고 싶은 별도의 스크립트가 2개 있습니다. 스크립트 1은 읽기 기능을 사용하여 필요한 파일 이름을 요청합니다. name1이라고 말하고 해당 작업을 수행한 다음 name1의 파일을 출력합니다.
입력의 일부로 name1을 활용하는 두 번째 스크립트와 name1을 가리킬 수 있는 스크립트와 별도의 구성 파일이 필요합니다(디렉토리는 고정되어 있지만 파일 이름은 가변적이라고 가정). ]
이렇게 하려면 전역 변수를 내보내는 방법이 필요하다고 생각합니다. 현재 수행하는 방식은 다음과 같습니다.
read -p "What do you want this file to be called?: " name1
export name1=$name1
다음 명령을 실행하십시오.
. script1.sh
그런 다음
echo $name1
올바른 결과를 생성하지만 현재 셸에서 사용을 지정하지 않고 이 동작을 어떻게 복제할 수 있습니까? - 다음 사람이 ./script1.sh 등을 실행할 것이라고 가정하면 전역적으로 내보낼 수 있는 방법이 있습니까? 이렇게 하면 구성 파일과 script2에서 $name1 변수를 사용할 수 있습니다.
미리 감사드립니다.
답변1
당신은 정말로 할 수 없습니다. 스크립트는 상위 셸 환경에서 환경 변수를 설정할 수 없습니다.
분명히 한 가지 해결책은 실행해야 하는 특정 방식으로 다른 두 스크립트를 실행하는 세 번째 스크립트를 만드는 것입니다. 첫 번째 스크립트를 가져온 다음 두 번째 스크립트를 실행합니다.
또는 두 스크립트를 하나로 결합합니다. "개별적인 것"으로 분리하면 원하는 경우 동일한 스크립트의 함수로 동일한 작업을 수행할 수 있습니다.
반품,
export name1=$name1
로 단축될 수 있다
export name1