पूर्ण कमांड का उपयोग क्या है?


17

completeमेरे सूक्ति-टर्मिनल पर कमांड चलाने के दौरान , यह कुछ कमांड दिखाता है। वे क्या हैं? और completeकमांड का उपयोग क्या है ?

$ complete
complete -F _minimal 
complete -F _filedir_xspec oodraw
complete -F _filedir_xspec elinks
complete -F _filedir_xspec freeamp
complete -F _longopt split
complete -F _longopt sed
complete -F _longopt ld
complete -F _longopt grep
complete -F _service /etc/init.d/vboxweb-service
complete -F _service /etc/init.d/vboxballoonctrl-service
complete -F _service /etc/init.d/rc
complete -F _service /etc/init.d/nmbd
complete -F _service /etc/init.d/halt
complete -j -P '"%' -S '"' jobs
complete -d pushd

सूची लंबी हो जाती है, इसलिए मैंने उनमें से कुछ को पोस्ट किया।


1
मैंने 'मैन कम्प्लीट' कमांड की कोशिश की, लेकिन यह कुछ भी प्रदर्शित नहीं करता है।
अविनाश राज

2
कोशिशhelp complete
सिल्वेन पिनेउ

जवाबों:


16

completeएक बैश बिलियन फ़ंक्शन है। इसलिए सिस्टम पर एक बाइनरी नहीं है। यह संभालती है कि कैसे दबाने पर कमांड पूरी हो जाएगी tab

उदाहरण: यदि आप टाइप करते हैं:

user@host:~$ pidof <tab><tab>

... इस कमांड के लिए सभी संभावित मूल्यों के साथ एक सूची दिखाई दे रही है। इस मामले में इसका मतलब है सभी चलने वाली प्रक्रिया। completeफ़ंक्शन का आउटपुट देखें :

user@host:~$ complete | grep pidof
complete -F _pgrep pidof

इसका मतलब है कि _pgrepकमांड को टैब करते समय फ़ंक्शन (-F) निष्पादित किया जाता है pidof। इस फ़ंक्शन की परिभाषा में है /etc/bash_completion.d/procps

एक और उदाहरण: यदि आप टाइप करते हैं:

user@host:~$ cd /usr/<tab><tab>
bin/     games/   include/ lib/     lib32/   local/   sbin/    share/   src/

... आप उन फ़ोल्डरों की सूची देखते हैं जिन्हें आप cdअंडर कर सकते हैं /usr/। किस कार्य को अंजाम दिया जाता है? greping complete(ऊपर) के रूप में समारोह हमें बताता है यह funtction है _cdमें /etc/bash_completion

इसे स्वयं करें : आपके पास एक प्रोग्राम / स्क्रिप्ट है जिसे /bin/myprogआप कहते हैं और आप चाहते हैं कि यदि आप इसे निम्नानुसार निष्पादित करें

user@host:~$ myprog /home/user/<tab><tab>

... यह केवल फ़ोल्डर्स की सूची होनी चाहिए, फाइलों की नहीं। तो अपने कमांड को निम्नलिखित कमांड के साथ पूरा करें:

user@host:~$ complete -F _cd myprog

बस। आप कस्टम कार्यों को पूरा करने के लिए स्वयं के कार्यों को भी लिख सकते हैं, उदाहरण के लिए केवल विशिष्ट फ़ाइलों या संख्याओं या स्थिर मूल्यों की सूची को पूरा करें ...


तो यह है कि कैसे git की कमांड लाइन पूरी होने से अधिकांश कार्यक्रम की तुलना में अधिक होशियार लगता है ...
AShelly

8

completeउपयोगकर्ता TABद्वारा किसी टर्मिनल में कुंजी को हिट करने पर ऑटो-एक्शन को पूरा करने के लिए एक बैश कमांड का उपयोग किया जाता है ।

कॉलिंग बस completeऑटो-कमांड के पूरा होने या सेवाओं के विकल्पों के लिए पंजीकृत सभी कार्यों को सूचीबद्ध करेगी।

बैश मैन पेजों से:

complete: complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat]
          [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix]
          [-S suffix] [name ...]
    Specify how arguments are to be completed by Readline.

    For each NAME, specify how arguments are to be completed.  If no options
    are supplied, existing completion specifications are printed in a way that
    allows them to be reused as input.

    Options:
      -p    print existing completion specifications in a reusable format
      -r    remove a completion specification for each NAME, or, if no
        NAMEs are supplied, all completion specifications
      -D    apply the completions and actions as the default for commands
        without any specific completion defined
      -E    apply the completions and actions to "empty" commands --
        completion attempted on a blank line

    When completion is attempted, the actions are applied in the order the
    uppercase-letter options are listed above.  The -D option takes
    precedence over -E.

    Exit Status:
    Returns success unless an invalid option is supplied or an error occurs.

/usr/share/bash-completion/bash_completionबैश के साथ आने वाले डिफ़ॉल्ट पूर्णताओं को देखने के लिए जांचें ।

इस कमांड के बारे में पूर्ण ट्यूटोरियल के लिए http://www.linuxjournal.com/content/more-using-bash-complete-command पर जाएं ।

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