में regex का उपयोग करने के लिए मैं अक्सर clear
के बजाय ccclear
लिखें।कैसे बैश उपनाम
यह एक उपनाम में regex का उपयोग करना संभव है? कुछ की तरह:
alias c\+lear='clear'
में regex का उपयोग करने के लिए मैं अक्सर clear
के बजाय ccclear
लिखें।कैसे बैश उपनाम
यह एक उपनाम में regex का उपयोग करना संभव है? कुछ की तरह:
alias c\+lear='clear'
सं
उपनाम चलाने सरल उपसर्ग प्रतिस्थापन, और अधिक के लिए पर्याप्त शक्तिशाली नहीं हैं।
हालांकि, बैश 4 में, आप एक समारोह command_not_found_handle
कहा जाता है इस मामले पर ट्रिगर और अपनी पसंद के तर्क को चलाने के लिए उपयोग कर सकते हैं।
command_not_found_handle() {
if [[ $1 =~ ^c+lear$ ]]; the
clear
else
return 127
fi
}
आप नए मैपिंग गतिशील जोड़ने में सक्षम होना चाहता था, तो:
declare -A common_typos=()
common_typos['^c+lear$']=clear
command_not_found_handle() {
local cmd=$1; shift
for regex in "${!common_typos[@]}"; do
if [[ $cmd =~ $regex ]]; then
"${common_typos[$regex]}" "[email protected]"
return
fi
done
return 127
}
ऊपर के साथ
, आप नए मैपिंग तुच्छता से जोड़ सकते हैं:
common_typos['^ls+$']=ls
ओच! यहां एक सूक्ष्म बग था, जहां मैं regexes के बजाय प्रतिस्थापन के माध्यम से पुनरावृत्त कर रहा था। एक सही संस्करण अब जगह पर है। –
मुझे लगता है कि, यह संभव नहीं है। । –
@AvinashRaj, ... नहीं उपनाम वाले, नहीं। वांछित व्यवहार अन्य तरीकों से हासिल किया जा सकता है, यद्यपि। –
'clear' के लिए कीबोर्ड शॉर्टकट का उपयोग करें। यह एक लगातार पर्याप्त ऑपरेशन है। 'Ctrl + L' को डिफ़ॉल्ट सेटिंग्स के साथ काम करना चाहिए। – PSkocik