카테고리 없음

Docker, #!/bin/sh: not found, function: not found

songye 2025. 5. 21. 14:11

 

도커 컨테이너 안에서 쉘스크립트를 실행시킬 때 다음과 같은 에러가 발생한다.

./test.sh: 1: #!/bin/sh: not found
./test.sh: 4: function: not found

 

지피티한테 물어봐도 OS에 따른 개행문제라고만 나올 뿐이었다.

(Window, Linux 개행이 다른 문제일 수도 있다 확인 필요, grep or vi search로 찾아보자)

 

결론부터 말하자면

쉘 스크립트 안에서 UNIX 표준 POSIX function은 해당사항이 아니었고

bash만 지원하는 것이 문제였다.

 

Docker 기본 쉘 스크립트가 어떻게 설정되어 있는지 살펴보자

ls -l /bin/sh
/bin/sh -> dash

 

dash로 기본값이 설정되어 있는 것을 확인할 수 있다.

/bin/bash로 직접 실행해도 되겠지만 귀찮으니 심볼릭 링크를 다시 설정해주자

 

ln -sf /bin/bash /bin/sh

 

bash를 기본 값으로 설정 완료!