¿en qué te estás equivocando? ¡en que el if de BASH no lleva paréntesis!
Código bash:
Ver original# -q hace que grep no emita nada a la pantalla, solamente interesa el código de error
if grep -q tools $archivo; then
...
fi
o
Código bash:
Ver originalgrep tools $ARCHIVO
# $? guarda el código de salida del último comando
if [ $? -eq 0 ]; then
...
fi