
명령 대체를 통해 제공되는 pylint
Git 저장소의 파일 확장자를 가진 모든 파일에서 실행되는 다음 코드가 있습니다 ..py
pylint $(git ls-files '*.py')
패턴과 일치하는 파일이 없으면 스크립트는 정상적으로 실행됩니다. 그러나 pylint
파일 없이 유틸리티를 호출하면 유틸리티에서 자세한 도움말 메시지를 표시하는데 이는 내가 원하는 것이 아닙니다 pylint
. 전혀 호출하고 싶지 않습니다.
그러면 파일을 호출하기 전에 파일 이름 패턴과 일치하는 파일이 있는지 테스트하는 가장 좋은 방법에 대한 도움을 받을 수 있습니까 pylint
?
나는 pylint
초보자 입니다 bash
.
답변1
명령 대체를 전혀 사용하지 마십시오. 대신 데이터를 로 파이프 git ls-files
하고 결과 파일 목록에서 실행하십시오.xargs
xargs
pylint
git ls-files -z '*.py' | xargs -0 -r pylint
git
그러면 명령의 파일 목록이 구분된 목록 xargs
으로 전달됩니다 \0
. 유틸리티 xargs
는 pylint
에서 읽은 이름을 사용하여 실행되지만 git
, 사용 시 -r
목록이 비어 있으면 유틸리티가 실행되지 않습니다.
이는 세 가지 문제를 해결합니다.
\0
경로 이름을 --구분된 목록 으로 전달하여 이름에 개행 및 기타 공백이 포함된 파일을 지원합니다.pylint
파이프에서 가능한 가장 큰 파일 배치를 읽고 실행함으로써git ls-files
대량의 데이터가 생성되고 "인수 목록이 너무 김"으로 인해 명령 대체 사용이 실패하는 상황을 처리할 수 있습니다.pylint
목록이 비어 있으면 실행되지 않습니다.
이 답변에서는 xargs
비표준(그러나 일반적인) 옵션 sum 을 사용하는 -0
구현을 가정합니다 -r
.