bashявляется приложением termcap через readline, как screenи некоторые другие программы. В большинстве систем на основе Linux (кроме Slackware) вы, вероятно, увидите ncurses как базовую реализацию termcap .
Страница руководства дляtgetent (названная curs_termcap, потому что так было сделано в SVr4 ...) гласит:
Эти подпрограммы включены в качестве помощи для преобразования программ, которые используют библиотеку termcap . Их параметры одинаковы, и процедуры эмулируются с использованием
базы данных terminfo . Таким образом, они могут использоваться только для запроса возможностей записей, для которых была скомпилирована запись terminfo .
То есть, если вызывающая программа не смотрит внимательно на возвращаемые данные и использует обычный интерфейс termcap для чтения описания терминала и записи данных на экран, она работает так же, как и исходный termcap.
Большинство приложений termcap не выглядят так пристально (xterm - редкое исключение - см. FAQ ). Так bashработает с курсами.
Однако библиотека termcap меньше, чем ncurses. Некоторое время назад это имело значение, и с 1997 года ncurses имеет опцию конфигурации, --with-termlibкоторая позволяет создавать части, специфичные для termcap и terminfo, в виде библиотеки, отдельной от функций, необходимых в библиотеке curses более высокого уровня. Прошло несколько лет, и некоторые дистрибутивы на основе Linux включили это в свои пакеты.
Поскольку bashне использует ни одну из функций curses (libncurses и т. Д.), Разумно ссылаться только на libtinfo.
readlineявляется специфичной для termcap частью bash(фактически, когда я впервые столкнулся bash, его части termcap были жестко закодированы , хотя официальный источник использовал termcap - возможно, чтобы сохранить еще несколько байтов). При bashсборке из комплекта readlineвы не увидите readlineотдельную библиотеку, потому что не было бы смысла делать эту комплектную readlineустановку в качестве (возможно, конфликтующей) разделяемой библиотеки. Но (в зависимости от вашей системы) вы можете видеть, libtinfoпотому что ncurses создается так или иначе (разделены или нет), а не оба.
TERM? Ах, не берите в голову - я вижу исходный пакетncurses.