Qualquer que seja o xargs
, ele é seu processo filho direto, não há shell entre eles. xargs
não tem noção de sua função. Também não tem conceito de builtins de shell.
Para que funcione:
- ou exporte sua função (com
export -f grepc
) e façaxargs
executar um shell de uma maneira um pouco complicada:… | xargs bash -c 'grepc "$@"' bash
- ou melhor converta sua função em um script, torne o arquivo executável e coloque-o onde seu
$PATH
aponta (ou ajuste a variável); entãogrepc
será um arquivo exargs
poderá executá-lo.