Al menos puede guardar las opciones parcialmente en una variable:
opts=$(echo --{ignore-case,word-regexp,count,exclude="sys*.*"})
Las pruebas son importantes porque el enmascaramiento puede ser difícil:
echo $opts
--ignore-case --word-regexp --count --exclude="sys*.*"
grep $opts bytes *.log
Dado que hay múltiples alternativas, como usar el historial, usar un alias, usar una función, no hay ningún caso de uso obvio -que se me ocurra.Rara vez hay una opción compleja para compartir entre diferentes programas, por lo que para una solución ad -hoc para el shell interactivo, el alias parece una mejor manera:
alias cgrep='grep --ignore-case --word-regexp --count --exclude="sys*"'
cgrep bytes *.log
Su muestra
VAR=rsync -avz --{partial,stats,delete,exclude=".*"}
no puede funcionar, porque la asignación finaliza en el primer espacio en blanco. Tienes que enmascarar los espacios en blanco:
VAR='rsync -avz --{partial,stats,delete,exclude=".*"}'
una cosa bastante peligrosa para la prueba, con esa --opción de eliminación, ¿no? Dado que las opciones pueden contener nuevamente "," y comillas simples, el enmascaramiento puede volverse difícil muy pronto. Buscaría un alias o confiaría en el historial.
Se puede almacenar un alias en el archivo ~/.bashrc para uso continuo en múltiples sesiones. Las funciones también se pueden almacenar en el bashrc, pero solo las necesita, si desea manejar parámetros, pasados a la función para ser evaluados allí.