웹개발 및 최신 테크 소식을 전하는 블로그, 웹이즈프리

HOME > linux

리눅스 sh 파일 실행시 bad interpreter 에러 해결하기

Last Modified : 2020-12-05 / Created : 2020-12-05
4,323
View Count
리눅스에서 만약 아래와 같은 에러가 발생할 수 있습니다.
/bin/bash^M: bad interpreter: No such file or directory

이 경우 어떻게 해결할 수 있을까요? 아래에서 알아봅니다.

기존에는 sh를 생성 후 권한 부여 및 실행 파일 변경 후 잘 동작하였는데 리눅스 업데이트 이 후 갑자기 동작하지 않는 문제가 발생했습니다. 해결 방법을 찾아보니 리눅스와 윈도우즈 문자 사용에 따른 차이 문제였습니다. 윈도우즈의 CR 문자가 리눅스 환경에서 제대로 동작하지 않았습니다.



! 리눅스 sh 실행시 CR 문자 에러 해결하기


해결방법은 CR을 제거하는 방법입니다. 이를 위해서 아래와 같이 sed 명령어를 사용할 수 있습니다. 만약 myFile.sh 파일을 수정할 경우 아래와 같이 입력합니다.
sed -i -e 's/\r$//' myFile.sh

위 명령어를 실행 후 잘 동작하였습니다. 다른 방법도 있는데 dos2unix 패키지를 추가로 설치하는 방법입니다. 아래와 같이 설치합니다.
sudo apt-get install dos2unix

이 후 아래와 같이 해당 파일을 실행하여 수정합니다.
dos2unix myFile.sh
unix2dos myFile.sh

이와 같이 두 가지 방법으로 해결이 가능합니다.

Previous

리눅스 systemctl에 새로운 service 설정 방법

Previous

[리눅스] linux history 명령어 알아보기