आप कम से कम विकल्पों को आंशिक रूप से एक चर में सहेज सकते हैं:
opts=$(echo --{ignore-case,word-regexp,count,exclude='"sys*.*"'})
परीक्षण महत्वपूर्ण है, क्योंकि मास्किंग मुश्किल हो सकता है:
echo $opts
--ignore-case --word-regexp --count --exclude="sys*"
grep $opts bytes *.log
चूंकि कई विकल्प हैं, जैसे इतिहास का उपयोग करना, उपनाम का उपयोग करना, फ़ंक्शन का उपयोग करना, कोई स्पष्ट उपयोग-मामला नहीं है जिसके बारे में मैं सोच सकता हूं। अलग-अलग कार्यक्रमों के बीच शायद ही कभी एक जटिल विकल्प साझा होता है, इसलिए इंटरैक्टिव शेल के लिए एक तदर्थ समाधान के लिए, अलियासिंग एक बेहतर तरीका लगता है:
alias cgrep='grep --ignore-case --word-regexp --count --exclude="sys*"'
cgrep bytes *.log
आपका नमूना
VAR=rsync -avz --{partial,stats,delete,exclude=".*"}
काम नहीं कर सकता, क्योंकि असाइनमेंट पहले खाली स्थान पर एंडेट है। आपको खाली नकाब उतारना होगा:
VAR='rsync -avz --{partial,stats,delete,exclude=".*"}'
परीक्षण के लिए एक बहुत ही खतरनाक बात, उस विकल्प के साथ, क्या यह नहीं है? चूंकि विकल्प में फिर से "," और एकल उद्धरण शामिल हो सकते हैं, मास्किंग बहुत जल्द मुश्किल हो सकती है। मैं एक उपनाम के लिए जाऊंगा या इतिहास पर भरोसा करूंगा।
एक उपनाम को कई सत्रों में निरंतर उपयोग के लिए ~ / .bashrc फ़ाइल में संग्रहीत किया जा सकता है। कार्यों को बाशेन में भी संग्रहीत किया जा सकता है, लेकिन आपको केवल उनकी आवश्यकता है, यदि आप मापदंडों को संभालना चाहते हैं, तो उसमें मूल्यांकन किए जाने के लिए फ़ंक्शन में पारित किया गया है।