Bash에서 줄 바꿈을 위해 1시간을 어떻게 보냈는지.
2802 단어 programmingbashlinuxtutorial
네, 확인합니다. 저는 약간의 휴식을 위해 1시간의 시간을 보냈습니다.
왜 이런 일이 발생합니까?
Windows의 줄 바꿈은 Linux와 동일하지 않으며 Bash 스크립트를 실행할 때 다음과 같은 오류가 발생할 수 있습니다.
이 오류가 발생한 이유를 코드에서 오랫동안 검색할 수 있습니다.
그리고 이 오류는 줄 바꿈의 유니코드를 사용하는 파일의 인코딩이 "
CR+LF
"( 000D
) 대신 "000A
"( LF
+ 000A
) 이기 때문에 나타납니다.
CR
is for "cariage return" andLF
is for "line feed".
Enter 키를 누르면 이 유니코드 중 하나가 사용됩니다. 그리고 Linux는
CR+LF
를 좋아하지 않습니다. 왜냐하면 그는 모든 줄 끝을 LF
로 나타내고 제 경우에는 몇 가지 문제를 줬기 때문입니다.그것을 해결하는 방법?
이를 해결하기 위해 많은 솔루션이 있습니다. 가장 쉬운 방법은 좋아하는 IDE를 사용하고 줄 끝을 변경하는 것입니다.
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 byLF
.
그리고 마지막 해결책은 파일의 모든 줄 끝을 변환하는 데 사용할 수 있는 명령dos2unix을 사용하는 것입니다.
그리고 당신은 그런 터무니없는 문제를 겪은 적이 있습니까?
주요 소스:
website 은 내 문제를 해결하고 나를 구해줍니다.
Microsoft는 설명합니다line endings.
Reference
이 문제에 관하여(Bash에서 줄 바꿈을 위해 1시간을 어떻게 보냈는지.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/tykok/how-i-spent-1-hour-of-my-time-for-a-line-break-in-a-bash-2m8m텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)