쉘 스크립트를 source ***.sh로 실행하면 왜 shebang이 먹히지 않나요?

woal873의 이미지

첫줄에 '#!/bin/rm'으로 명시하고
'./***.sh'로 실행하면 스크립트가 삭제되던데

'$ sh ***.sh'
'$ source ***.sh'
'$ . ***.sh'

위에처럼 3가지 방법으로 실행시키면 삭제가 아니라
내부 명령어들을 그냥 수행하네요
왜 이런건지 알려주세요 ㅠㅠ

swish95의 이미지

친절하지 못한 답글이라 죄송합니다만..
님의 실행한 방법의 실행 주체와
아래 세가지 실행 방식의 실행 주체가 다릅니다.
아래 세가지 방식은 때에 따라선 각각 다른 방식으로 동작할수도 있습니다.

이렇게 힌트만 드리는건 본인의 지식이 되려면 이정도만 가지고 테스트하고 알아내셔야 본인의 지식이 되리라 생각해서 입니다. ^^

------------------------------------------------------------
ProgrammingHolic