Bash에서 줄 바꿈을 위해 1시간을 어떻게 보냈는지.

Bash를 사용하여 작은 스크립트를 작성하려는 경우 이 기사가 도움이 되기를 바랍니다.

네, 확인합니다. 저는 약간의 휴식을 위해 1시간의 시간을 보냈습니다.



왜 이런 일이 발생합니까?



Windows의 줄 바꿈은 Linux와 동일하지 않으며 Bash 스크립트를 실행할 때 다음과 같은 오류가 발생할 수 있습니다.



이 오류가 발생한 이유를 코드에서 오랫동안 검색할 수 있습니다.

그리고 이 오류는 줄 바꿈의 유니코드를 사용하는 파일의 인코딩이 "CR+LF "( 000D ) 대신 "000A "( LF + 000A ) 이기 때문에 나타납니다.

CR is for "cariage return" and LF is for "line feed".



Enter 키를 누르면 이 유니코드 중 하나가 사용됩니다. 그리고 Linux는 CR+LF를 좋아하지 않습니다. 왜냐하면 그는 모든 줄 끝을 LF로 나타내고 제 경우에는 몇 가지 문제를 줬기 때문입니다.

그것을 해결하는 방법?



이를 해결하기 위해 많은 솔루션이 있습니다. 가장 쉬운 방법은 좋아하는 IDE를 사용하고 줄 끝을 변경하는 것입니다.

For exemple in VSCode it's at the bottom.



Git을 사용하는 경우 .gitatttributes 이라는 파일을 사용할 수 있습니다. 이 파일에서 특정 파일의 줄 끝을 가져오도록 지정할 수 있습니다.

*.sh        text eol=lf
*.md        text=auto
*.txt       text


In the first line we declare the end of the lines for all files with .sh extension by LF.



그리고 마지막 해결책은 파일의 모든 줄 끝을 변환하는 데 사용할 수 있는 명령dos2unix을 사용하는 것입니다.

그리고 당신은 그런 터무니없는 문제를 겪은 적이 있습니까?



주요 소스:

website 은 내 문제를 해결하고 나를 구해줍니다.

Microsoft는 설명합니다line endings.


좋은 웹페이지 즐겨찾기