다음 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
그것이 (오른쪽 이스케이프 시퀀스를 전송하고 정확하게 키 입력을 식별)가 제대로 그 라인 에디터를 실행할 수 있도록 (libreadline 정적으로 링크) 편집기, 어떤에 터미널 기능에 대해 알아 terminfo 데이터베이스를 조회하는 사람들을 사용 단말기.
readline이 정적으로 연결되는 이유에 관해서 는 같은 사람이 함께 개발 하고의 출처에 포함되어 bash
있음을 명심해야합니다 .readline
bash
bash
bash
시스템의 installed와 연결 되도록 빌드 할 수 libreadline
있지만, 해당 버전이 호환 가능한 버전이고 기본값이 아닌 경우에만 가능합니다. configure
로 컴파일 할 때 스크립트 를 호출해야합니다 --with-installed-readline
.
TERM
?의 값에 필요할 수 있습니다 . 아, 괜찮아요-소스 패키지가 보입니다ncurses
.