Sie können die Optionen zumindest teilweise in einer Variablen speichern:
opts=$(echo --{ignore-case,word-regexp,count,exclude='"sys*.*"'})
Testen ist wichtig, da das Maskieren schwierig sein kann:
echo $opts
--ignore-case --word-regexp --count --exclude="sys*"
grep $opts bytes *.log
Da es mehrere Alternativen gibt, wie die Verwendung des Verlaufs, die Verwendung eines Alias oder die Verwendung einer Funktion, gibt es keinen offensichtlichen Anwendungsfall, den ich mir vorstellen kann. Es gibt selten eine komplexe gemeinsame Nutzung von Optionen zwischen verschiedenen Programmen. Für eine Ad-hoc-Lösung für die interaktive Shell scheint Aliasing ein besserer Weg zu sein:
alias cgrep='grep --ignore-case --word-regexp --count --exclude="sys*"'
cgrep bytes *.log
Ihre Probe
VAR=rsync -avz --{partial,stats,delete,exclude=".*"}
kann nicht funktionieren, da die Zuordnung beim ersten Leerzeichen endet. Sie müssen die Leerzeichen maskieren:
VAR='rsync -avz --{partial,stats,delete,exclude=".*"}'
Eine ziemlich gefährliche Sache zum Testen mit dieser Option --delete, nicht wahr? Da Optionen wieder "," und einfache Anführungszeichen enthalten können, kann die Maskierung sehr bald schwierig werden. Ich würde mich für einen Alias entscheiden oder mich auf die Geschichte verlassen.
Ein Alias kann in der Datei ~ / .bashrc gespeichert werden, um ihn über mehrere Sitzungen hinweg kontinuierlich zu verwenden. Funktionen können auch im bashrc gespeichert werden, aber Sie benötigen sie nur, wenn Sie Parameter verarbeiten möchten, die an die darin auszuwertende Funktion übergeben werden.