Bash 스크립트를 사용할 때 항상 vi
.
나는 이론적으로 올바르게 작성된 스크립트를 디버깅하고 있었고 file
이 명령으로 생성된 파일을 검사하기로 결정했습니다. 이것이 내가 보는 것입니다.
myScript1 Bourne-Again shell script text executable, Unicode text, UTF-8 text
myScript2 ASCII text
myScript3 POSIX shell script text executable, ASCII text
myScript4 Unicode text, UTF-8 text
같은 날 생성된 4개의 스크립트가 어떻게 vi
서로 다른 인코딩을 가질 수 있습니까?
내가 디버깅하는 것은ASCII text
로 어떻게 바꾸나요 Bourne-Again shell script text executable, Unicode text, UTF-8 text
?
답변1
file
내용을 바탕으로 파일 유형을 추측해 보세요. 우리는 이 파일의 내용 중 일부를 살펴봐야 합니다.
무슨 일이 일어났는지 추측해보세요:
이 두 가지 다른 유형의 스크립트는 #!
파일 시작 부분의 다른 shebang() 행으로 인해 발생할 수 있습니다.
ASCII 텍스트와 UTF-8 텍스트의 차이점은 멀티바이트 문자(문자 코드 > 127)가 포함되어 있는지 여부뿐입니다. 바이트 간에 실제 차이가 없기 때문에 파일은 UFT-8과 ASCII 간의 차이를 추측해야 합니다.
그러나 127보다 큰 문자 코드가 발견되지 않으면 ASCII와 UTF-8은 동일합니다.