UTF-8 인코딩으로 저장된 스크립트 파일에서 $'\357\273\277cd
와 같은 오류 메시지가 발생한 적이 있나요?
스크립트 파일을 작성하여 실행 중에... 이런 오류가 있어서 하루를 날려버렸습니다.
언제쯤 삽질은 안하게 될까요? 하하하
이 오류는 주로 파일의 시작 부분에 포함된 BOM(Byte Order Mark) 때문입니다.
BOM은 파일의 인코딩 방식을 표시하는 특수 문자로,
쉘 스크립트와 같은 텍스트 파일에서 문제가 발생할 수 있습니다.
문제의 원인
BOM(Byte Order Mark)은 파일의 시작 부분에 붙어 인코딩 방식을 표시합니다. UTF-8로 저장된 파일이 BOM을 포함하고 있으면 쉘에서 BOM 문자를 불필요한 문자로 인식하여 오류가 발생할 수 있습니다. 이 경우, 스크립트가 올바르게 실행되지 않고 cd
명령어가 잘못 해석되는 등의 문제가 발생합니다.
해결 방법: Notepad
를 사용한 BOM 제거

Notepad를 사용하여 BOM을 제거해주세요.
수정 전에 인코딩 메뉴를 열었을 때 UTF-8 BOM으로 선택 되어있어서 식은 땀이 났답니다.
인코딩 옵션에서 UTF-8을 선택합니다.
BOM이 포함되지 않은 UTF-8로 파일을 저장만 해주면 됩니다-!
추가 방법: BOM 확인 및 제거
만약 파일에 BOM이 포함되어 있는지 확인하고 싶다면
hexdump
와 같은 도구를 사용하여 파일의 내용을 검사할 수 있습니다.
BOM은 일반적으로 EF BB BF
로 나타납니다.
hexdump -c script.sh | head
'BackEnd > Linux' 카테고리의 다른 글
OpenSSL docs 정리 (업데이트 예정) (0) | 2021.06.25 |
---|---|
ls 명령어/파일목록/linux ls (0) | 2021.06.17 |
프로세스/ps 명령어/pstack 명령어/kill 명령어 (2) | 2021.06.08 |
심볼릭 링크(Symbolic Link) (2) | 2020.12.17 |