यदि आप निम्नानुसार चलते हैं bash
:
LD_DEBUG=bindings bash
GNU सिस्टम पर, और bash.*tinfo
उस आउटपुट के लिए grep , आपको कुछ इस तरह दिखाई देगा:
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
tinfo से उन प्रतीकों का उपयोग कर रहा है।
उन प्रतीकों में से किसी के लिए मैन पेज लाना यह स्पष्ट करता है कि वे क्या कर रहे हैं:
$ 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
।