আপনি যদি এই bash
হিসাবে চালান :
LD_DEBUG=bindings bash
একটি জিএনইউ সিস্টেমে, এবং bash.*tinfo
আউটপুটটির জন্য গ্রেপ , আপনি এর মতো কিছু দেখতে পাবেন:
797: binding file bash [0] to /lib/x86_64-linux-gnu/libtinfo.so.5 [0]: normal symbol `UP'
797: binding file bash [0] to /lib/x86_64-linux-gnu/libtinfo.so.5 [0]: normal symbol `PC'
797: binding file bash [0] to /lib/x86_64-linux-gnu/libtinfo.so.5 [0]: normal symbol `BC'
797: binding file bash [0] to /lib/x86_64-linux-gnu/libtinfo.so.5 [0]: normal symbol `tgetent'
797: binding file bash [0] to /lib/x86_64-linux-gnu/libtinfo.so.5 [0]: normal symbol `tgetstr'
797: binding file bash [0] to /lib/x86_64-linux-gnu/libtinfo.so.5 [0]: normal symbol `tgetflag'
আপনি nm -D /bin/bash
যে bash
টিউনফো থেকে এই চিহ্নগুলি ব্যবহার করছেন তার আউটপুট থেকে নিশ্চিত করতে পারেন ।
এই চিহ্নগুলির মধ্যে যে কোনও একটির জন্য ম্যান পৃষ্ঠা আনতে তারা কী জন্য তা স্পষ্ট করে:
$ man tgetent
NAME
PC, UP, BC, ospeed, tgetent, tgetflag, tgetnum, tgetstr, tgoto, tputs -
direct curses interface to the terminfo capability database
মূলত, bash
সম্ভবত এটির readline
(লাইব্রেডলাইনটি স্ট্যাটিকভাবে সংযুক্ত রয়েছে) সম্পাদক, টার্মিনাল ক্ষমতা সম্পর্কে অনুসন্ধানের জন্য এটি টার্মিনো ডাটাবেসটি জিজ্ঞাসা করতে ব্যবহার করে যাতে এটির লাইন সম্পাদকটি সঠিকভাবে চালাতে পারে (ডান পলায়নের ক্রমগুলি প্রেরণ এবং সঠিকভাবে কী টিপুনগুলি সঠিকভাবে সনাক্ত করতে পারে) টার্মিনাল।
কেন পঠনরেখাকে স্থিতিশীলভাবে সংযুক্ত করা হয়েছে bash
, আপনার মনে রাখতে হবে যে একই ব্যক্তির readline
পাশাপাশি বিকশিত bash
হয়েছে এবং এর উত্সে অন্তর্ভুক্ত রয়েছে bash
।
bash
সিস্টেমের ইনস্টলডের সাথে সংযোগ স্থাপন করা সম্ভব libreadline
, তবে কেবলমাত্র যদি এটির একটি সামঞ্জস্যপূর্ণ সংস্করণ হয় এবং এটি ডিফল্ট নয়। configure
সংকলনের সময় আপনাকে স্ক্রিপ্টটি কল করতে হবে --with-installed-readline
।
TERM
? আহ, কিছু মনে করবেন না - আমি উত্স প্যাকেজটি দেখতে পাচ্ছিncurses
।