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