Tengo un script que en algunas circunstancias puede no tener nada en stdout. Al final del guión, paso las líneas que tengo a otro comando usando xargs. Mi problema es que, cuando no hay nada en stdout, recibo el típico mensaje de error "Uso: programa arg1 arg2".
¿Cómo puedo evitar esto?

Respuestas:
Necesita una
-ru--no-run-if-emptyopciones.Tenga en cuenta que este comportamiento particular es difícil de hacer multiplataforma. Versiones BSD de
xargsejecución con-rpor defecto. La versión de GNU lo necesita. La versión de FreeBSDxargsignora el-rindicador de compatibilidad con GNU. La versión de Mac OS X ni siquiera acepta la bandera y arroja un errorillegal option.A continuación, puede optar por utilizar una detección de sistema operativo basada en
$OSTYPEescribir un script multiplataforma. Aún mejor, trate de detectar el comportamiento dexargssí mismo. Ejecútelo con-ry si eso falla (código de estado> 0), ejecútelo sin-r.fuente
Una lección de por qué deberías leer las páginas man ...
Las banderas
-ro--no-run-if-emptyson mi amigo.fuente