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_profilenormalmente não é originado por shells que não são de login, portantoexport -f labelé necessário para exportar a funçãolabelpara o shell chamado porxargs. -
A opção
-cinformabashpara ler os comandos a serem executados a partir da sequência de argumentos da opção.