मैं एक बैश पूर्ण स्क्रिप्ट बनाना चाहता हूं, जो फॉर्म के तर्कों को पहचानती है --arg
और --some-arg=file
।
इस ट्यूटोरियल और कुछ उदाहरणों को पढ़ने के बाद /usr/share/bash_completion/completions/
, मैंने निम्नलिखित स्क्रिप्ट (क्रोमियम के साथ कुछ झंडे टाइप करने में समय बचाने के लिए) लिखी है:
_chromium()
{
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
# Some interesting options
opts="
--disable-web-security
--easy-off-store-extension-install
--incognito
--load-extension=
--pack-extension=
--pack-extension-key=
--user-data-dir=
"
# Handle --xxxxxx=file
if [[ ${cur} == "--"*"=" ]] ; then
# Removed failures (is my logic OK?)
return 0
fi
# Handle other options
if [[ ${cur} == -* ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
fi
}
complete -F _chromium chromium
मैंने इसे सहेजा ~/bash_completions/chromium
, और उपयोग करके एक सिमलिंक बनाया sudo ln -s ~/bash_completions/chromium /usr/share/bash_completion/completions/chromium
।
फिर मैंने इसका उपयोग करके लोड किया . /usr/share/bash_completions/completions/chromium
।
अब, मैं दो समस्याओं का सामना कर रहा हूँ:
chromium --u<TAB>
के लिए फैलता हैchromium --user-data-dir=<SPACE>
(मुझे जगह नहीं चाहिए)।- पथ (निर्देशिका और फ़ाइलें) पूर्ण नहीं हैं।
मैं इन समस्याओं को कैसे हल कर सकता हूं?