Şu şekilde çalıştırırsanız bash:
LD_DEBUG=bindings bash
bir GNU sisteminde ve bash.*tinfobu çıktıda grep için , şöyle bir şey görürsünüz:
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'
Çıktısı gelen onaylayabilirsiniz nm -D /bin/basho bashtinfo gelenler sembolleri kullanıyor.
Bu sembollerden herhangi biri için kılavuz sayfasını getirmek, ne için olduklarını netleştirir:
$ man tgetent
NAME
PC, UP, BC, ospeed, tgetent, tgetflag, tgetnum, tgetstr, tgoto, tputs -
direct curses interface to the terminfo capability database
Temel olarak, bashdaha büyük olasılıkla onun readlineo (sağ çıkış sıralarını gönderme ve doğru tuşa basma tespit) düzgün bir çizgi editörü çalışabilmesi için (libreadline statik içinde bağlantılıdır) editörü, herhangi terminali yetenekleri hakkında bilgi edinmek için terminfo veritabanını sorgulamak için bu kullanır terminal.
Readline'ın neden statik olarak bağlantılı basholduğuna gelince , aynı kişi tarafından readlinegeliştirilen bashve kaynağına dahil olan unutmayın bash.
bashSistemin kurulu olmasıyla bağlantı kurmak için inşa etmek mümkündür libreadline, ancak bu sadece uyumlu bir versiyona sahipse ve bu varsayılan değilse. configureKomut dosyasını derleme zamanında çağırmanız gerekir --with-installed-readline.
TERM? Ah, boş ver - Kaynak paketin olduğunu görüyorumncurses.