Você precisa de um -r
ou --no-run-if-empty
opções.
Lembre-se de que é difícil criar esse comportamento específico em várias plataformas. Versões BSD de xargs
execução -r
por padrão. A versão GNU precisa disso. A versão do FreeBSD xargs
ignora o -r
sinalizador para compatibilidade com o GNU. A versão do Mac OS X nem sequer aceita a sinalização e gera um erro illegal option
.
Você pode optar por usar uma detecção de SO baseada em $OSTYPE
para escrever um script de plataforma cruzada. Melhor ainda, tente detectar o comportamento de xargs
si mesmo. Execute-o com -r
e se isso falhar (código de status> 0), execute-o sem -r
.