2013 में अपडेट: अधिकांश बैश-पूर्ति को केवल जरूरत पड़ने पर ऑटोलैड पूर्णता के लिए फिर से लिखा गया था। कोर लिपि अब बहुत ज्यादा लयबद्ध है।
पूर्ण स्क्रिप्ट कभी-कभी शेल स्क्रिप्ट मानकों में भारी हो सकती है । एक सर्वर पर मेरी पहुंच है, यह लगभग 1700 लाइनें (57 KB) है और यह सिर्फ मुख्य स्क्रिप्ट है । में /etc/bash_completion.d
देखते हैं ~ विभिन्न अन्य आदेश के लिए 200 अतिरिक्त लिपियों ( openssl
, mutt
, mount
...) 25,537 लाइनों या 1.2 एमबी कुल। प्रत्येक स्क्रिप्ट, जब खट्टा हो जाता है, जाँच करता है कि क्या कमांड वास्तव में उपलब्ध हैंडलर को परिभाषित करने से पहले उपलब्ध है; ~ इस मामले में 330 बार, जिनमें से प्रत्येक में $PATH
किसी दिए गए नाम के साथ निष्पादन योग्य फ़ाइल की जाँच शामिल है । (हालांकि मुझे /usr/bin
स्मृति में कैश होने की उम्मीद है ...)
बेशक, यहां तक कि केवल आधा सेकंड का समय लगता है, दो पूर्ण सेकंड नहीं। लेकिन यह समस्या का कम से कम हिस्सा हो सकता है। चलाना चाहते हैं du -hs /etc/bash_completion*
या wc -l /etc/bash_completion{,.d/*} | grep total
जाँच करना चाहते हैं।
आप स्क्रिप्ट को "ट्रेस" मोड में मैन्युअल रूप से सोर्स करने की कोशिश कर सकते हैं:
set -x
. /etc/bash_completion
निष्पादित होते ही आपको प्रत्येक पंक्ति दिखाई देगी। यदि कोई विशेष आदेश है जिसमें एक लंबा समय लगता है, तो आपको इसे नोटिस करना चाहिए।
( set +x
ट्रेस मोड अक्षम करता है।)