![Perl을 사용하여 파일이 바이너리인지 텍스트인지 확인하는 bash 스크립트는 무엇입니까?](https://linux55.com/image/200811/Perl%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%8C%8C%EC%9D%BC%EC%9D%B4%20%EB%B0%94%EC%9D%B4%EB%84%88%EB%A6%AC%EC%9D%B8%EC%A7%80%20%ED%85%8D%EC%8A%A4%ED%8A%B8%EC%9D%B8%EC%A7%80%20%ED%99%95%EC%9D%B8%ED%95%98%EB%8A%94%20bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
누군가 이 bash 스크립트 조각이 어떻게 작동하는지 설명해 줄 수 있나요?
is_text_file() {
perl -e 'exit((-B $ARGV[0])?1:0);' "$1"
}
감사해요.
답변1
Perl에는 첫 번째 인수에서 호출되는 파일 유형 테스트 연산자가 있습니다. 그런 다음 삼항 연산자를 사용하여 True/False를 쉘 상태 0(isTxt) 또는 1(not)로 변환합니다. 이 함수에는 명시적인 반환 값이 없으므로 perl 명령 자체의 상태를 반환합니다. Bash 자체는 여기서 거의 아무것도 하지 않습니다.
-T File is an ASCII or UTF-8 text file (heuristic guess).
-B File is a "binary" file (opposite of -T).
"추측"이라는 단어에 주의를 기울이세요.