Non non ^^
Grep -q renvoie uniquement un code d'erreur, c'est sa fonction. Il faut savoir que if considère 0 comme vrai, et plus de 0 comme faux (while aussi, d'ailleurs). Pas besoin de crochets donx, ni de -eq 0.
Exemple :
if ping -c1 google.com >/dev/null 2>&1; then echo "coucou"; fi