द्वारा प्रीपेड किए गए सभी आदेशों के लिए बैश पूर्णता को संरक्षित करें मेरे पास एक स्क्रिप्ट है जो पृष्ठभूमि में बैश प्रक्रियाओं को निष्पादित करने की अनुमति देती है, मैंने इसे "बैकी" कहा है। कार्यक्रम मैं पृष्ठभूमि मैं इस तरह फोन में चलाना चाहते हैं:कस्टम कमांड
backy long-running-script param1 param2
समस्या अब मैं ढीला कि long-running-script
के लिए बैश पूरा होने अगर मैं एक और स्क्रिप्ट पहले जोड़ें है।
मैं एक बैश समापन फ़ाइल लिखना चाहता हूं जो न केवल long-running-script
और इसके सभी पैरामीटर के लिए बैश पूर्णता को संरक्षित करता है, जो कि मैं अन्य सभी स्क्रिप्ट के लिए भी बैक के साथ कॉल करना चाहता हूं।
मुझे बैश पूर्ण होने के साथ कुछ अनुभव है, लेकिन मुझे बस उस आदेश को याद आ रहा है जिसे मैं अपनी बैश पूर्णता स्क्रिप्ट में सम्मिलित कर सकता हूं ताकि यह स्क्रिप्ट को पूरा करने के साथ पूरा हो सके। कोई विचार?
मेरे पूरा होने के अब तक:
have backy &&
_backy_complete()
{
local cur prev goals
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
# How to get the completion from the script that is the param for backy,
# in a generic way?
COMPREPLY=(?????)
return 0
} &&
complete -F _backy_complete backy
संपादित करें - समाधान:
complete -F _command backy
:
Lekensteyn के लिए धन्यवाद, मैं सिर्फ इस लाइन के साथ अपने मौजूदा बैश पूरा होने स्क्रिप्ट की सामग्री की जगह
आपको अपने प्रश्न का समाधान जोड़ने की ज़रूरत नहीं है, क्योंकि यह सीधे प्रश्न के उत्तर में दिखाई देता है। – Lekensteyn