1

Я использую csh в качестве терминала и у меня есть скрипт, который запускается, когда я меняю каталоги, который заменяет заголовок окна на текущий каталог. У меня он изначально запускается в моем файле .cshrc, так что он изменит заголовок окна в новой оболочке.

Когда я использую less для просмотра текстового файла в консоли, вместо содержимого файла, я увижу вывод этого скрипта. Это фактически делает less бесполезным.

2 ответа2

1

Согласно этому FAQ для Less на домашней странице разработчика, оказывается, что наличие всего, что генерирует вывод на консоль (что делает мой скрипт заголовка окна) в файле .cshrc может мешать выводу less . Очевидно, что less вызывает оболочку для открытия и просмотра файлов, и, поскольку любой новый экземпляр оболочки будет автоматически выполнять команды в .cshrc , любой вывод консоли, возникающий на этом шаге, будет мешать работе инструмента.

Решение состоит в том, чтобы удалить вызов моего скрипта из файла .cshrc . Я могу поместить его в файл .login , но есть предостережение, что любой новый вызов оболочки не будет повторно выполнять команды в этом файле.

1

Ваша проблема вызвана тем, что файл ~/.cshrc выводит данные на консоль, которые мешают работе less .

Одним из способов решения этой проблемы является проверка наличия интерактивных оболочек, прежде чем делать что-либо, что влияет на консоль или изменяет способ выполнения сценариев оболочки (например, установка псевдонимов для cd).

if ($?prompt) then
    # Do things that affect interactive shells here
endif

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .