xargs에 아무것도 보내지 않음

xargs에 아무것도 보내지 않음

어떤 경우에는 표준 출력에 아무 것도 없을 수 있는 스크립트가 있습니다. 스크립트 끝에서 xargs를 사용하여 필요한 줄을 다른 명령에 전달합니다. 내 문제는 표준 출력에 아무것도 없을 때 일반적인 "사용법: 프로그램 arg1 arg2" 오류 메시지가 표시된다는 것입니다.

이것을 어떻게 피할 수 있습니까?

답변1

-r또는 옵션이 필요합니다 --no-run-if-empty.

이 특정 동작은 크로스 플랫폼에서 수행하기 어렵다는 점을 명심하세요. BSD 버전은 xargs기본적으로 실행됩니다. -rGNU 버전에서는 필요합니다. FreeBSD 버전은 GNU 호환성 플래그를 xargs무시합니다 . -rMac OS X 버전은 이 플래그를 받아들이지도 않고 오류를 발생시킵니다 illegal option.

$OSTYPE그런 다음 운영 체제 기반 감지를 사용하여 크로스 플랫폼 스크립트를 작성 하도록 선택할 수 있습니다 . 더 나은 방법은 자체 동작을 감지해 보는 것입니다 xargs. -r실패하면(상태 코드 > 0) 실행하거나 실행하지 않습니다 -r.

답변2

맨 페이지를 읽어야 하는 이유에 대한 교훈...

-r아니면 표지판이 --no-run-if-empty내 친구입니다.

관련 정보