এটি করার জন্য আমি কোনও পদ্ধতি দেখতে পাচ্ছি না, সহজেই। আপনাকে complete -p
পিতামাত্ত শেল থেকে শিশু শেলগুলিতে আউটপুট দিতে হবে ।
এটি শুরু করার জন্য আপনাকে সাব-শেলের অতিরিক্ত কমান্ডগুলি ইনজেক্ট করতে দেয়:
$ bash --rcfile <(echo '. ~/.bash_profile')
এখন আমরা যদি চেষ্টা করে দেখি এবং এর complete -p
মতো করে:
$ bash --rcfile <(echo '. ~/.bash_profile'; while read line; do echo "$line"; done < <(complete -p))
complete: usage: complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]
এটি প্রায়শই কাজ করে, মনে হচ্ছে যে complete
কমান্ডগুলি আসছে তাতে তা বিভক্ত হয়ে পড়েছে the মধ্যবর্তী ব্যক্তি কোনও কাজ না করায় কোনও ফাইল ব্যবহার করার চেষ্টা করছেন:
$ complete -p > /tmp/cmp.txt; bash --rcfile <(echo '. ~/.bash_profile'; echo '. /tmp/cmp.txt')
complete: usage: complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]
কেন এটি ব্যর্থ হচ্ছে তা দেখার চেষ্টা করা জিনিসগুলিতে সত্যিই অতিরিক্ত আলোর ঝলক দেয় না। এখানে আমি এর মাধ্যমে বাশ থেকে ভার্বোজ আউটপুট সক্ষম করছি -set -x
:
$ bash
$ set -x
তারপরে আমরা দ্বিতীয়বার আগে তৈরি করা ফাইলটি উত্স করি:
$ . /tmp/cmp.txt
+ . /tmp/cmp.txt
++ complete -F _manila manila
++ complete -F _minimal
complete: usage: complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]
++ complete -F _command time
++ complete -F _command do
++ complete -o bashdefault -o default -o nospace -F __git_wrap_git_checkout gcob
সুতরাং কিছু চতুরতা না থাকলে, দেখে মনে হচ্ছে আউটপুটটির মধ্যে থাকা ডেটা complete -p
এই বিশেষ ক্ষেত্রে বহনযোগ্য নয়।
তথ্যসূত্র