다른 스크립트에서 환경 변수를 설정하는 방법은 무엇입니까?

다른 스크립트에서 환경 변수를 설정하는 방법은 무엇입니까?

WORKSPACE="$(git rev-parse --show-toplevel)"특정 작업 등에 대한 별칭을 작성할 수 있도록 ~/.bashrc본질적으로 git 저장소의 루트로 설정되는 변수를 설정했습니다.$WORKSPACEbuilding an imagegoing to my component directory in the repo

이제 지정된 디렉토리 이름과 분기 이름을 사용하여 새로운 git 작업 트리를 생성하는 bash 쉘 스크립트를 만들었습니다. 내 스크립트 구문은 다음과 같습니다 - my_script -c <branch_name> -d <directory_name>

이제 문제는 새 작업 트리를 생성한 후 $WORKSPACE새로 생성된 git 작업 트리의 디렉터리 이름으로 변수를 설정해야 한다는 것입니다.

현재 나는 하고 있다 -

cd $DIR -> which is `directory_name`
WORKSPACE="$(git rev-parse --show-toplevel)"

그러나 이는 도움이 되지 않습니다. 왜냐하면 .의 설정 값은 $WORKSPACE(스크립트가 트리거되는) 대화형 bash 셸이 아니라 스크립트가 실행되는 비대화형 세션에 적용되기 때문입니다. 따라서 이미지를 빌드하기 위해 별칭을 트리거하면 새로 생성된 작업 트리 디렉터리의 컨텍스트에서는 트리거되지 않습니다.

이 문제를 어떻게 해결할 수 있나요?

답변1

git 명령에 대한 새 값을 얻을 디렉터리에서 다음 줄을 실행합니다. git rev-parse --show-toplevel > ~/tmpfile

그런 다음 이것을 다음 항목에 추가하십시오 .bashrc. WORKPLACE=$(cat ~/tmpfile)

드디어 도망쳤다source ~/.bashrc

이제 파일 시스템 어디에서나 업데이트된 값으로 WORKPLACE를 참조할 수 있습니다.

tmpfile위치는 쉽게 관리할 수 있지만 .bashrc위치도 꼭 지정해주세요.

관련 정보