Bash에서 나중에 두 번째 스크립트 및 구성 파일에서 사용하기 위해 스크립트 내의 읽기 함수에서 전역 변수를 내보내거나 설정하려면 어떻게 해야 합니까?

Bash에서 나중에 두 번째 스크립트 및 구성 파일에서 사용하기 위해 스크립트 내의 읽기 함수에서 전역 변수를 내보내거나 설정하려면 어떻게 해야 합니까?

예를 들어. 별도로 보관하고 실행하고 싶은 별도의 스크립트가 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

관련 정보