Vous pouvez au moins enregistrer les options partiellement dans une variable:
opts=$(echo --{ignore-case,word-regexp,count,exclude='"sys*.*"'})
Les tests sont importants, car le masquage peut être difficile:
echo $opts
--ignore-case --word-regexp --count --exclude="sys*"
grep $opts bytes *.log
Puisqu'il existe plusieurs alternatives, comme l'utilisation de l'historique, l'utilisation d'un alias, l'utilisation d'une fonction, il n'y a pas de cas d'utilisation évident auquel je puisse penser. Il y a rarement une option complexe à partager entre différents programmes, donc pour une solution ad-hoc pour le shell interactif, l'aliasing semble une meilleure façon:
alias cgrep='grep --ignore-case --word-regexp --count --exclude="sys*"'
cgrep bytes *.log
Votre échantillon
VAR=rsync -avz --{partial,stats,delete,exclude=".*"}
ne peut pas fonctionner, car l'affectation est endet au premier blanc. Vous devez masquer les blancs:
VAR='rsync -avz --{partial,stats,delete,exclude=".*"}'
une chose assez dangereuse pour les tests, avec cette option --delete, n'est-ce pas? Étant donné que les options peuvent contenir à nouveau "," et des guillemets simples, le masquage peut devenir difficile très rapidement. Je choisirais un alias ou me fierais à l'histoire.
Un alias peut être stocké dans le fichier ~ / .bashrc pour une utilisation continue sur plusieurs sessions. Les fonctions peuvent également être stockées dans le bashrc, mais vous n'en avez besoin, si vous voulez gérer les paramètres, passés dans la fonction pour y être évalué.