Seçenekleri en azından bir değişkene kısmen kaydedebilirsiniz:
opts=$(echo --{ignore-case,word-regexp,count,exclude='"sys*.*"'})
Test önemlidir, çünkü maskeleme zor olabilir:
echo $opts
--ignore-case --word-regexp --count --exclude="sys*"
grep $opts bytes *.log
Tarihi kullanmak, bir takma ad kullanmak, bir işlevi kullanmak gibi birçok alternatif olduğundan, aklıma gelen açık bir kullanım durumu yoktur. Farklı programlar arasında nadiren karmaşık bir seçenek paylaşımı vardır, bu nedenle etkileşimli kabuk için geçici bir çözüm için takma ad daha iyi bir yol gibi görünür:
alias cgrep='grep --ignore-case --word-regexp --count --exclude="sys*"'
cgrep bytes *.log
Senin örnek
VAR=rsync -avz --{partial,stats,delete,exclude=".*"}
çalışamaz, çünkü ödev ilk boşta sona erer. Boşlukları maskelemeniz gerekir:
VAR='rsync -avz --{partial,stats,delete,exclude=".*"}'
test etmek için oldukça tehlikeli bir şey, bu - sil seçeneği ile değil mi? Seçenekler tekrar "," ve tek tırnak içerebileceğinden, maskeleme çok yakında zorlaşabilir. Bir takma ad isterdim ya da tarihe güvenirim.
Birden çok oturumda sürekli kullanım için bir diğer ad ~ / .bashrc dosyasında saklanabilir. İşlevler bashrc'de de saklanabilir, ancak yalnızca parametreleri işlemek istiyorsanız, burada değerlendirilecek işleve aktarılanlara ihtiyacınız vardır.