제가 물었을 때 명확하지 않았다면 용서해주세요. 나는 질문을 할 때 매우 명확하게하려고 노력할 것입니다.
임베디드 리눅스에 대해 배우면서 프로젝트를 위한 환경을 설정하고 있습니다. 우리는 다음과 유사한 환경을 설정하기 위해 쉘 스크립트를 작성했습니다.
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
변수는 새 프로세스에 대해서만 설정되므로 첫 번째 옵션을 사용하여 변수를 설정할 수 없습니다. 변수는 상위에서 하위로만 내보낼 수 있으며 그 반대로는 내보낼 수 없습니다. (즉, 호출된 프로세스는 현재 프로세스의 변수를 수정할 수 없습니다.)