개발 이야기/TIL

[Error] sh syntax error: unexpected end of file

혁진 2024. 4. 26. 14:48

Error 

shell script를 실행하던 중 아래의 에러가 발생했다

LongForecasting/Linear/exchange_rate.sh
: not found-LongForecasting/Linear/exchange_rate.sh: 1:
scripts/EXP-LongForecasting/Linear/exchange_rate.sh: 67: Syntax error: end of file unexpected (expecting "then")
""""

 

현재 환경은 ubuntu에서 shell script를 돌리려고했었고(이전 window multiprocessing관련 에러로 인해) sh 파일의 경우에는 문제가 없었다..(친구의 맥에서는 문제없이 돌아가는걸 확인)

 

한참을 해매하다가 https://thumbsupgeuni.tistory.com/23 을 보고 답을 찾았다..!

 

원인 

unix/Linx에서는 LF(\n)을 기본으로 줄바꿈으로 사용하고 Window에서는 CRLF(\r\n)을 기본으로 사용한다. 

즉, 다른 운영체제에서 작성된 문서일 경우, 특히 window라면 줄바꿈이 다를 수 있다. 

 

해결

dos2unix ./<실행할 스크립트>

 

위의 명령어를 통해 실행할 스크립트파일을 unix형태로 변경하였고, 바로 해결할 수 있었다..!