Para chamar label
com xargs
, você pode tentar algo assim:
export -f label
find /Users/brett/Development/repos/my-repo/ -name "*.php" -print0 |
xargs -0 grep -Iil 'mysql_query(' |
xargs -I {} -n 1 bash -c 'label 2 {}'
Observe como label 2 {}
na última chamada xargs
foi alterada para bash -c 'label 2 {}'
. Como xargs
não pode chamar a função diretamente, nós exportamos a função label
para child bash
processes do shell pai, então bifurcamos um shell filho e processamos a função lá.
Notas:
-
~/.bash_profile
normalmente não é originado por shells que não são de login, portantoexport -f label
é necessário para exportar a funçãolabel
para o shell chamado porxargs
. -
A opção
-c
informabash
para ler os comandos a serem executados a partir da sequência de argumentos da opção.