반응형
우분투에서 잘 실행되던 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
'ERROR' 카테고리의 다른 글
[error] AttributeError: module 'cv2.aruco' has no attribute 'Dictionary_get' (0) | 2023.05.28 |
---|---|
[error] Authentication required_vscode_github_ubuntu (0) | 2023.05.22 |
[error] SSLError, SSLCertVerificationError (0) | 2023.05.18 |
[error] termios.error: (25, 'Inappropriate ioctl for device') (0) | 2023.05.17 |
[error] 아나콘다, 미니콘다 설치 후 명령 프롬프트(cmd) 실행 안됨 (0) | 2023.05.13 |