Linux에서 아래와 같은 오류 메시지가 발생했다면:
./helmfile_install.sh: /bin/bash^M: bad interpreter: No such file or directory
이는 스크립트 파일이 Windows 형식의 줄바꿈(CRLF)을 사용했기 때문입니다. Linux는 Unix 형식의 줄바꿈(LF)을 필요로 하므로, 파일 형식을 수정해야 합니다.
아래는 이 문제를 해결하기 위한 여러 방법들입니다.
1. dos2unix 명령어 사용
Linux에서 Windows 형식의 줄바꿈을 Unix 형식으로 변환하는 가장 간단한 방법은 dos2unix 명령어를 사용하는 것입니다.
명령어:
sudo apt install dos2unix # Ubuntu/Debian 계열에서 설치
sudo yum install dos2unix # RHEL/Rocky Linux/CentOS 계열에서 설치
dos2unix helmfile_install.sh # 파일 변환
이 명령어는 파일 내용을 직접 수정하지 않아도 줄바꿈 문제를 빠르게 해결할 수 있습니다.
2. sed 명령어 사용
sed 명령어를 사용하여 파일 내의 Windows 스타일 줄바꿈(CRLF)을 Unix 스타일 줄바꿈(LF)으로 변환할 수 있습니다.
명령어:
sed -i 's/\\r//' helmfile_install.sh
\\r: Windows 줄바꿈의 캐리지 리턴(Carriage Return) 부분을 의미합니다.i: 파일을 직접 수정합니다.
이 방법은 별도의 패키지 설치 없이 기본적으로 사용할 수 있습니다.
3. 텍스트 편집기에서 수정
(1) Vim을 사용
- 파일을 열고:
vim helmfile_install.sh - 다음 명령을 입력하여 파일 형식을 Unix로 변경:
:set ff=uni - 저장 후 종료:
:wq
(2) VS Code 또는 Notepad++ 사용
- 파일을 Windows 환경에서 열고, 줄바꿈 설정을 Unix(LF)로 변경한 후 저장합니다:
- VS Code: 오른쪽 하단의
CRLF를 클릭 →LF선택 - Notepad++:
Edit > EOL Conversion > Unix (LF)선택 후 저장
- VS Code: 오른쪽 하단의
4. 새 파일 생성 후 내용 복사
아래 명령어를 사용하여 새 파일을 생성하고, 원본 파일의 내용을 복사해도 문제를 해결할 수 있습니다:
cat helmfile_install.sh > temp.sh
mv temp.sh helmfile_install.sh
chmod +x helmfile_install.sh
요약
Windows에서 작성된 스크립트를 Linux에서 실행하려면 파일의 줄바꿈 형식을 Unix 형식(LF)으로 변경해야 합니다. 가장 추천하는 방법은 dos2unix 명령어를 사용하는 것입니다. 추가적으로, Vim이나 VS Code를 이용한 수동 수정도 유용할 수 있습니다.