Nếu bạn chạy bashnhư:
LD_DEBUG=bindings bash
trên hệ thống GNU và grep cho bash.*tinfođầu ra đó, bạn sẽ thấy một cái gì đó như:
   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'
Bạn có thể xác nhận từ đầu ra của nm -D /bin/bashmà bashđang sử dụng những biểu tượng từ tinfo.
Mang trang người đàn ông cho bất kỳ biểu tượng nào trong số đó làm rõ những gì họ làm:
$ man tgetent
NAME
   PC, UP, BC, ospeed, tgetent, tgetflag, tgetnum, tgetstr, tgoto, tputs -
   direct curses interface to the terminfo capability database
Về cơ bản, bashnhiều khả năng readlinetrình soạn thảo (libreadline được liên kết tĩnh), sử dụng các trình soạn thảo để truy vấn cơ sở dữ liệu terminfo để tìm hiểu về các khả năng của thiết bị đầu cuối để nó có thể chạy trình soạn thảo dòng chính xác (gửi các chuỗi thoát đúng và xác định chính xác các lần nhấn phím) thiết bị đầu cuối.
Về lý do tại sao readline được liên kết tĩnh bash, bạn phải nhớ rằng nó readlineđược phát triển cùng với bashcùng một người và được bao gồm trong nguồn của bash.
Có thể xây dựng bashđể được liên kết với hệ thống đã cài đặt libreadline, nhưng chỉ khi đó là phiên bản tương thích và đó không phải là mặc định. Bạn cần gọi configurekịch bản tại thời điểm biên dịch với --with-installed-readline.
               
              
TERM? Ah, đừng bận tâm - tôi thấy gói nguồn làncurses.