Test sur comparaison de variable en erreur anormalement

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