소스 파일에서 얻은 모든 변수를 내보낼 수 있습니까?

소스 파일에서 얻은 모든 변수를 내보낼 수 있습니까?

두 개의 변수를 설정하는 이라는 파일이 있다고 가정해 보겠습니다 variables.sh.

foo=bar
bar=foo

이 파일을 만들면 source현재 셸에서 이러한 변수를 사용할 수 있지만 두 번째 셸 스크립트에서 사용하려면 해당 변수를 내보내야 하므로 파일은 다음과 같아야 합니다.

export foo=bar
export bar=foo

source어떤 종류의 +를 수행하는 것이 가능합니까? export아니면 각 변수를 설정하기 전에 +가 있도록 변경해야 합니까 variables.sh?export

답변1

두 번째 쉘 스크립트에서 이를 사용하려면 이를 내보내야 하므로 파일은 다음과 같아야 합니다.

두 번째 파일을 얻거나 얻을 수 있습니다 variables.sh. 파일 처리 결과를 평가하는 등 작업을 수행하는 방법에는 여러 가지가 있지만 가장 깔끔한 방법은 set -abash 쉘을 사용하는 것입니다.

          -a      Automatically  mark  variables  and  functions which are
                  modified or created for export  to  the  environment  of
                  subsequent commands.

따라서 다음을 통해 목표를 달성할 수 있습니다.

set -a
source variables.sh

지적한대로l0b0set +a, 후속 쉘 코드에서 자동으로 변수를 계속 내보내지 않도록 나중에 이 작업을 수행할 수 있습니다 .

관련 정보