bash 쉘 변수를 pwd로 설정

bash 쉘 변수를 pwd로 설정

쉘 변수를 스크립트 실행 경로인 $PWD로 설정하려고 합니다. 이것이 내가 가지고 있는 것입니다(setenv.sh):

#!/bin/bash
export WORK_AREA=$PWD      #also tried "$PWD", $(pwd), `pwd`

하지만 쉘에서 실행하면

> ./setenv.sh
> echo $WORK_AREA

WORK_AREA에 값이 없습니다.

답변1

export"위"가 아닌 "아래"로 작업하십시오. 쉘의 하위 스크립트에서 값을 내보낼 때 해당 값을 상위 쉘로 내보내지 않습니다. 그것은 단지 자신의 자녀를 위한 환경을 변화시킬 뿐입니다.

답변2

스크립트가 현재 쉘 환경에 영향을 미치도록 하려면 스크립트 소스를 가져와야 합니다. 예를 들면 다음과 같습니다.

source setenv.sh

또는 점 표기법을 사용하세요.

. setenv.sh

스크립트를 실행하면 마치 명령을 사용하여 실행한 것처럼 하위 쉘에서 실행됩니다 bash. 하위 셸 환경에 대한 변경 사항은 상위 환경에 영향을 주지 않습니다. 여기서는 환경 변수만 논의하고 있다는 점에 유의하세요. 하위 셸에서 파일을 수정하면 변경 사항이 상위 셸로 전파됩니다.

관련 슈퍼유저 게시물 보기:

관련 정보