আমি একটি বাশ সমাপ্তি স্ক্রিপ্ট তৈরি করতে চাই যা ফর্মটি --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>
(আমি স্থান চাই না)- পাথ (ডিরেক্টরি এবং ফাইল) আর শেষ হয় না।
আমি কীভাবে এই সমস্যাগুলি সমাধান করতে পারি?