Pour éviter ce genre de confusion, il faut éliminer les variables superflues.
Le problème n’est pas une histoire de guillemet mais de tiret.
Une variable qui commence par « - » sera interprétée par grep comme une option qui n’existe pas, donc résultat de grep obligatoirement négatif.
Il suffit d’utiliser « -- » en fin d’argument de grep pour séparer les options des arguments, ou utiliser '\-’ au lieu de ‹ - › dans la variable de recherche.
Illustration:
ligne="-a always,exit etc... etc..."
prm="-a always,exit"
grep "$prm" <<<"$ligne"
--> grep : option invalide -- ' '
# test correct
grep -q -- "$prm" <<<"$ligne" && echo NOK || echo OK
NOK