Gancho precompromiso de Git para encontrar text en files

Estoy escribiendo un gancho pre-commit de git para verificar si alguno de los files por etapas contiene text no permitido y aborto si ese es el caso.

No es un experto en esto. Hasta ahora tengo esto

git diff --cached --name-status | while read x file; do if [ "$x" == 'D' ]; then continue; fi if [[ egrep "DISALLOWED_TEXT" ${file}]]; then echo "ERROR: Disallowed text in file: ${file}" exit 1 fi done 

No parece funcionar Recibo estos errores al comprometerme:

 .git/hooks/pre-commit: line 16: conditional binary operator expected .git/hooks/pre-commit: line 16: syntax error near `"DISALLOWED_TEXT"' .git/hooks/pre-commit: line 16: ` if [[ egrep "DISALLOWED_TEXT" ${file}]]; then' 

Cualquier sugerencia, ideas y ayuda apreciada. ¡Gracias!

SOLUCIONADO: (errores de syntax y llamada de salida disfuncional)

 disallowed="word1 word2" git diff --cached --name-status | while read x file; do if [ "$x" == 'D' ]; then continue; fi for word in $disallowed do if egrep $word $file ; then echo "ERROR: Disallowed expression \"${word}\" in file: ${file}" exit 1 fi done done || exit $? 

Responda para marcar esta pregunta como teniendo una respuesta:

OP terminó con:

 disallowed="word1 word2" git diff --cached --name-status | while read x file; do if [ "$x" == 'D' ]; then continue; fi for word in $disallowed do if egrep $word $file ; then echo "ERROR: Disallowed expression \"${word}\" in file: ${file}" exit 1 fi done done || exit $?