어떤 경우에는 표준 출력에 아무 것도 없을 수 있는 스크립트가 있습니다. 스크립트 끝에서 xargs를 사용하여 필요한 줄을 다른 명령에 전달합니다. 내 문제는 표준 출력에 아무것도 없을 때 일반적인 "사용법: 프로그램 arg1 arg2" 오류 메시지가 표시된다는 것입니다.
이것을 어떻게 피할 수 있습니까?
답변1
-r
또는 옵션이 필요합니다 --no-run-if-empty
.
이 특정 동작은 크로스 플랫폼에서 수행하기 어렵다는 점을 명심하세요. BSD 버전은 xargs
기본적으로 실행됩니다. -r
GNU 버전에서는 필요합니다. FreeBSD 버전은 GNU 호환성 플래그를 xargs
무시합니다 . -r
Mac OS X 버전은 이 플래그를 받아들이지도 않고 오류를 발생시킵니다 illegal option
.
$OSTYPE
그런 다음 운영 체제 기반 감지를 사용하여 크로스 플랫폼 스크립트를 작성 하도록 선택할 수 있습니다 . 더 나은 방법은 자체 동작을 감지해 보는 것입니다 xargs
. -r
실패하면(상태 코드 > 0) 실행하거나 실행하지 않습니다 -r
.
답변2
맨 페이지를 읽어야 하는 이유에 대한 교훈...
-r
아니면 표지판이 --no-run-if-empty
내 친구입니다.