![내보내기를 사용하여 환경 변수를 설정할 때 "."와 "./"의 차이점은 무엇입니까? [복사]](https://linux55.com/image/36783/%EB%82%B4%EB%B3%B4%EB%82%B4%EA%B8%B0%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%99%98%EA%B2%BD%20%EB%B3%80%EC%88%98%EB%A5%BC%20%EC%84%A4%EC%A0%95%ED%95%A0%20%EB%95%8C%20%22.%22%EC%99%80%20%22.%2F%22%EC%9D%98%20%EC%B0%A8%EC%9D%B4%EC%A0%90%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
제가 물었을 때 명확하지 않았다면 용서해주세요. 나는 질문을 할 때 매우 명확하게하려고 노력할 것입니다.
임베디드 리눅스에 대해 배우면서 프로젝트를 위한 환경을 설정하고 있습니다. 우리는 다음과 유사한 환경을 설정하기 위해 쉘 스크립트를 작성했습니다.
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.sh
export -p
. prjenv.sh
그런 다음 스크립트를 실행한 후 환경 변수를 설정 해야 한다는 것을 알았습니다 .
.
./
어느 것을 언제 사용하고 차이점이 무엇인지 알 수 있습니까 ?
더 많은 정보가 필요하면 알려주시기 바랍니다.
추신: Linux를 처음 사용하기 때문에 제가 사용하는 기술 용어 중 일부가 잘못된 경우 사과드립니다.
답변1
./script
script
현재 디렉터리에 있는 파일은 .
새 프로세스로 실행됩니다.
. script
인수를 사용하여 쉘 함수 .
(별명임)를 호출하십시오. 이는 포함된 모든 행을 현재 쉘에 입력하는 것과 거의 동일합니다.source
script
변수는 새 프로세스에 대해서만 설정되므로 첫 번째 옵션을 사용하여 변수를 설정할 수 없습니다. 변수는 상위에서 하위로만 내보낼 수 있으며 그 반대로는 내보낼 수 없습니다. (즉, 호출된 프로세스는 현재 프로세스의 변수를 수정할 수 없습니다.)