बैश स्वतः पूर्ण वाइल्डकार्ड के साथ विफल हो जाता है


1

का उपयोग करते हुए bash इस प्रणाली पर:

लिनक्स 3.16.0-4-amd64 # 1 एसएमपी डेबियन 3.16.7-ckt20-1 + deb8u4 (2016-02-29) x86_64 GNU / लिनक्स

क्रम:

cd /tmp
touch test1.txt && touch test2.txt && touch test3.txt
ls test [tab][tab]

दिखाता है:

test1.txt test2.txt test3.txt

कमांड लाइन के नीचे।

यही मैं उम्मीद करता हूं bash व्यवहार करने के लिए स्वत: पूर्ण।

लेकिन जब मैं टाइप करता हूं:

ls test* [tab][tab]

(उसी परिणाम की अपेक्षा) मुझे केवल प्राप्त होता है (यानी स्वतः पूर्ण विशेष रूप से विस्तारित):

test1.txt

तो तारांकन ( * ) अंत में वाइल्डकार्ड बनाता है test[23].txt 'नहीं पहुंचा जा सकता'। मुझे पूरा यकीन है कि बैश के पिछले संस्करणों में समान परिणाम देने के लिए उपयोग किए गए दो अनुक्रम - कम से कम मेरे कंप्यूटर पर।

क्या किसी और को यह समस्या है? क्या यह एक डिफ़ॉल्ट सेटिंग है (जैसे कि डेबियन 8 में) जिसे बदला जा सकता है (मैंने विभिन्न शेल मापदंडों को सेट और अनसेट करने की कोशिश की shopt लेकिन कोई फायदा नहीं हुआ)।

जवाबों:


0

वैसे मेरे लिए जो समाधान काम करता है वह यह है: ~/.bashrc मेरे पास लाइनें थीं

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
   if [[ -f /usr/share/bash-completion/bash_completion ]]; then
      . /usr/share/bash-completion/bash_completion
   elif [[ -f /etc/bash_completion ]]; then
      . /etc/bash_completion
   fi
fi

मुझे लगता है कि यह ब्लॉक स्वतः पूर्णता का ख्याल रखता है। यह टिप्पणी करने के बाद और एक नया खोल शुरू करने के बाद, न केवल यह काम करता है, बल्कि यह उस तरह से वापस चला गया है जिस तरह से मैं अभ्यस्त हूं!

अभी भी निश्चित नहीं है कि क्या if -क्लाज का मतलब है, लेकिन मैं इसे ठीक करने की कोशिश नहीं करूंगा जब यह काम करेगा ..

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.