스크립트가 "소스" 또는 "실행 가능"으로 시작되었습니까?

스크립트가 "소스" 또는 "실행 가능"으로 시작되었습니까?

source(.) 또는 executable(shebang 또는 이와 유사한 것) 로 시작하는지 스크립트 내에서 확인할 수 있습니까 ?

답변1

$0스크립트가 있는지 테스트하십시오 .

#!/bin/bash
echo $0

실행 가능하게 만들고( chmod 755 test.sh) 다음을 수행합니다.

source test.sh

bash당신은 (또는 로그인 방법과 쉘이 무엇인지에 따라 다른 것을) 얻게 될 것입니다 .

당신이 그렇게한다면

./test.sh

./test.sh스크립트가 디스크에 저장되는 방법을 알고 있다고 가정하면 다음을 수행해야 합니다 .

if [ $(basename "$0") == "test.sh" ] 
then
   ..... your code here for non-sourced
else
   ..... your code here for sourced
fi

관련 정보