bash script 에서 다른 script 의 변수, 함수 등을 이용하기 위해서는


source 명령을 사용하게 됩니다.


여러 개의 script 에서 동일한 값을 참조하기 위해서 효율적으로 사용할 수 있습니다.


그러나 script 에서 이유를 알 수 없게 source 이 되지 않는 경우가 있습니다.


그 이유는 script 의 첫 줄이 #!/bin/bash 로 되어 있지 않기 때문일 수 있습니다.


다음의 예제를 보면 이해가 쉽게 이해할 수 있습니다.


]$ cat env.sh 
#!/bin/sh
MSG1="Hello"
MSG2="World"

]$ cat shell_1.sh 
#!/bin/sh
source env.sh
echo $MSG1 $MSG2

]$ cat shell_2.sh 
#!/bin/bash
source env.sh
echo $MSG1 $MSG2

]$ ./shell_1.sh 
./shell_1.sh: 3: ./shell_1.sh: source: not found

]$ ./shell_2.sh 
Hello World
]$


#!/bin/bash 와 #!/bin/sh 의 차이입니다.


간단하지만 의외로 찾기 어려운 오류라 고생했던 기억이 있습니다.