ERROR

[error] $'~~~\r': command not found

mle21 2022. 7. 10. 06:00
반응형

우분투에서 잘 실행되던 shell script를 윈도우에서 github를 통해서 clone 하여 편집하고 push 하였다. 그리고 다시 우분투에서 clone 하여 실행하니 $'~~~\r': command not found 에러가 발생하였다.


[발생 원인]

윈도우에서 작성한 shell script를 리눅스에서 실행할 때 발생한다. 윈도우는 줄바꿈으로 CRLF(\r\n)를 리눅스는 개행으로 LF(\n)를 사용한다. 위에서 알 수 있듯이 '\r'이 차이난다.

즉 윈도우에서 작성한 아래와 같은 명령어를 실행했을 때

cd ~/catkin_ws

우분투에서는

cd ~/catkin_ws
\r

이라고 인식하게 되어 shell script가 정상 동작하지 않는다.


[해결 방법]

우분투에서 아래 명령으로 파일의 개행문자를 바꿔주면 shell script를 정상적으로 실행 가능하다. (window >> linux)

sed -i -e 's/\r$//' [파일 이름]

위와 반대의 경우에는 아래 명령으로 파일의 개행문자를 바꿔주면 된다. (linux >> window)

sed -i -e 's/$/\r' [파일 이름]
728x90