Я недавно apt-get обновил свой пи, работающий на растяжку. Когда я запускаю Mutt, он отображает сообщения об ошибках ниже.

Error in /usr/lib/mutt/source-muttrc.d, line 3: for: unknown command
Error in /usr/lib/mutt/source-muttrc.d, line 4: test: unknown command
Error in /usr/lib/mutt/source-muttrc.d, line 5: done: unknown command
Error in /etc/Muttrc, line 147: source: errors in /usr/lib/mutt/source-muttrc.d

Глядя на /usr/lib/mutt/source-muttrc.d (ниже), это кажется простым. Если я запускаю команды вручную (включая /bin /sh -e).

#!/bin/sh -e

for rc in /etc/Muttrc.d/*.rc; do
    test -r "$rc" && echo "source \"$rc\""
done

/etc/Muttrc имеет:

##
# See /usr/share/doc/mutt/README.Debian for details.
source /usr/lib/mutt/source-muttrc.d

Страница man для muttrc имеет команду source, но она читает ее как файл конфигурации, а не как скрипт os. Страница man ничего не говорит о тестовом ключевом слове или каких-либо указаниях на запуск сценария оболочки из файла конфигурации.

Что необходимо сделать для правильной обработки файлов Muttrc.d?

mutt -v
NeoMutt 20170113 (1.7.2)

1 ответ1

1

Кажется, в вашем /etc/Muttrc есть ошибка (по любой причине). На моем stretch боксе написано:

source /usr/lib/mutt/source-muttrc.d|

| в конце строки это важно. В руководстве Mutt мы читаем в разд. 27:

Если имя файла заканчивается вертикальной чертой («|»), то имя файла считается исполняемой программой, из которой можно прочитать ввод (например, source ~/bin/myscript |).

По какой-то причине даже справочная страница muttrc в версии 1.10.1 не документирует эту функцию, а соответствующая справочная страница от neomutt .

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