Shell 스크립트에서 CRLF(Carriage Return Line Feed)와 LF(Line Feed) 문제를 해결하는 방법
CRLF는 Windows 시스템에서 사용되는 줄 끝 표시 방식이고 LF는 Unix/Linux 시스템에서 사용됩니다.
CRLF와 LF란 무엇인가?
CRLF(Carriage Return, Line Feed) : Windows에서 일반적으로 사용되는 개행 문자입니다. 문자열의 끝을 나타내는 데 CR(\r)과 LF(\n) 두 개의 문자를 사용합니다.
LF(Line Feed) : Unix/Linux 시스템에서 일반적으로 사용되는 개행 문자입니다. 문자열의 끝을 나타내는 데 LF(\n) 한 개의 문자를 사용합니다.
문제 확인하기
일반적으로 CRLF 문제는 스크립트를 실행할 때 다음과 같은 오류 메시지가 나타나는 것으로 확인할 수 있습니다.
- bash: command not found
- unexpected end of file
- bad interpreter: No such file or directory
해결 방법
1. dos2unix 사용하기
dos2unix 명령어는 CRLF를 LF로 변환하는 데 사용할 수 있는 유틸리티입니다. 이 도구는 일반적으로 Linux 배포판에서 기본적으로 제공되거나 패키지 관리자를 통해 설치할 수 있습니다.
설치
- Ubuntu/Debian 기반 시스템
sudo apt-get install dos2unix
- Red Hat/CentOS 기반 시스템
sudo yum install dos2unix
변환 실행
- CRLF를 LF로 변환합니다.
dos2unix your_script.sh
2. sed 사용하기
sed 명령어를 사용하여 파일에서 CRLF를 제거할 수도 있습니다.
your_script.sh 파일에서 줄 끝의 \r (CR)을 제거합니다.
sed -i 's/\r$//' your_script.sh
3. tr 사용하기
tr 명령어를 사용하여 CRLF를 LF로 변환할 수도 있습니다.
your_script.sh에서 CR을 제거하여 fixed_script.sh에 저장합니다.
tr -d '\r' < your_script.sh > fixed_script.sh
4. 편집기 사용하기
일부 텍스트 편집기는 파일의 줄 끝 형식을 변경할 수 있는 기능을 제공합니다.
예를 들어, VS Code, Sublime Text, Notepad++와 같은 편집기를 사용할 수 있습니다.
VS Code
- 파일을 열고 오른쪽 하단에서 CRLF를 클릭하여 LF로 변경합니다.
Notepad++
- 메뉴에서 Edit > EOL Conversion > Unix (LF)를 선택합니다.
Shell 스크립트의 CRLF와 LF 문제를 해결할 수 있습니다.
'리눅스' 카테고리의 다른 글
[draft] hplog 명령어 (0) | 2024.10.15 |
---|---|
[draft] 우분투에서 PHP 8.3으로 업그레이드하고 기존의 PHP 8.1을 삭제하는 방법 (0) | 2024.10.14 |
[draft] Python으로 Kafka Consumer 생성 (0) | 2024.10.11 |
[draft] 우분투에서 apt를 사용하여 최신 Python 버전 설치 및 기본 설정하는 방법 (0) | 2024.10.11 |
[draft] Kafdrop 도구를 사용하여 Kafka 클러스터를 관리하는 방법 (0) | 2024.10.11 |