내보내기를 사용하여 환경 변수를 설정할 때 "."와 "./"의 차이점은 무엇입니까? [복사]

내보내기를 사용하여 환경 변수를 설정할 때 "."와 "./"의 차이점은 무엇입니까? [복사]

제가 물었을 때 명확하지 않았다면 용서해주세요. 나는 질문을 할 때 매우 명확하게하려고 노력할 것입니다.

임베디드 리눅스에 대해 배우면서 프로젝트를 위한 환경을 설정하고 있습니다. 우리는 다음과 유사한 환경을 설정하기 위해 쉘 스크립트를 작성했습니다.

export PROJECT=example-sys
export PRJROOT=/home/karim/${PROJECT}
export TARGET=powerpc-linux
export PREFIX=${PRJROOT}/tools
export TARGET_PREFIX=${PREFIX}/${TARGET}
export PATH=${PREFIX}/bin:${PATH}
cd $PRJROOT

스크립트 를 prjenv.sh.​​​./xyz.sh./abc./prjenv.shexport -p

. prjenv.sh그런 다음 스크립트를 실행한 후 환경 변수를 설정 해야 한다는 것을 알았습니다 .

../어느 것을 언제 사용하고 차이점이 무엇인지 알 수 있습니까 ?

더 많은 정보가 필요하면 알려주시기 바랍니다.

추신: Linux를 처음 사용하기 때문에 제가 사용하는 기술 용어 중 일부가 잘못된 경우 사과드립니다.

답변1

./scriptscript현재 디렉터리에 있는 파일은 .새 프로세스로 실행됩니다.

. script인수를 사용하여 쉘 함수 .(별명임)를 호출하십시오. 이는 포함된 모든 행을 현재 쉘에 입력하는 것과 거의 동일합니다.sourcescript

변수는 새 프로세스에 대해서만 설정되므로 첫 번째 옵션을 사용하여 변수를 설정할 수 없습니다. 변수는 상위에서 하위로만 내보낼 수 있으며 그 반대로는 내보낼 수 없습니다. (즉, 호출된 프로세스는 현재 프로세스의 변수를 수정할 수 없습니다.)

관련 정보