`Compgen` buildin कमांड को समझें


36

से help compgen:

$ help compgen
compgen: compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]
    Display possible completions depending on the options.

    Intended to be used from within a shell function generating possible
    completions.  If the optional WORD argument is supplied, matches against
    WORD are generated.

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

तो, विकल्प क्या है [-abcdefgjksuv]?

दूसरे शब्दों में, मैं जानना चाहता हूं कि सभी विकल्पों का उपयोग कैसे करें।


क्या आपने मैन पेज पढ़ा है? man compgen। मैन पेज शेल बिल्डिंग्स के लिए है, इसलिए आपको नीचे स्क्रॉल करना होगा compgen
garethTheRed 10

5
"मैन कॉगेन", मौजूद नहीं है। "मैन बैश" का प्रयोग करें
kevinf

जवाबों:


38

compgenकमांड के लिए विकल्प समान हैं complete, सिवाय -pऔर -r। से compgenआदमी पेज:

compgen
 compgen [option] [word]
 Generate possible completion matches for word according to the options, which 
 may be any option accepted by the complete builtin with the exception of -p 
 and -r, and write the matches to the standard output

विकल्पों के लिए [abcdefgjksuv]:

  • -a मतलब उपनामों का नाम
  • -b शेल बिल्डरों के नाम का अर्थ है
  • -c सभी आदेशों के नाम का अर्थ है
  • -d निर्देशिका के नाम का मतलब है
  • -e निर्यात शेल चर का नाम
  • -f फ़ाइल और कार्यों के नाम का मतलब है
  • -g समूहों के नाम का अर्थ है
  • -j मतलब नौकरी के नाम
  • -k जिसका अर्थ है शेल के आरक्षित शब्द
  • -s सेवा के नाम का अर्थ है
  • -u userAlias ​​नामों के नाम का अर्थ है
  • -v शेल चर का नाम

आप यहां पूरा मैन पेज देख सकते हैं ।


@ पांड्या: completeइसके लिए विकल्प देखें , यह वैसा ही है compgen, इसके अलावा -pऔर -r
cuonglm

मैंने इसे पढ़ा है man bashऔर आपके पोस्ट को पूरा करने के लिए संपादित करने का सुझाव दिया है, ताकि मैं आसानी से स्वीकार कर सकूं।
पंड्या

1
कैसे उपयोग करने के बारे में कोई जानकारी compgen -G? कहो कि मेरा पैटर्न है compgen -G '*.zip'और मेरे पास "foo.zip" फाइल है। compgen में foo.zip मिलेगा, लेकिन अगर उपयोगकर्ता पहले ही 'b' टाइप कर चुका है तो क्या होगा। अब, compgen कुछ भी नहीं मिल जाना चाहिए। अगर मैं आज्ञा देता हूं compgen -G '*.zip' "b", तो कंपेन अभी भी foo.zip पाता है
एडवर्ड फाल्क

@cuonglm सेवा कमांड द्वारा प्रदान किए जाने वाले कार्यों को कैसे सूचीबद्ध करें? उदाहरण के लिए, service networkingटैब का उपयोग करना और मारना वापस आ जाएगा force-reload reload restart start stop। क्या आप जानते हैं कि उपयोग करने वालों को कैसे प्राप्त करें compgen?
इलिया रोस्तोवत्से

@IliaRostovtsev: देखें उदाहरण के लिए यह एक github.com/scop/bash-completion/blob/...
cuonglm
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.