Недавно я обновил свой pi с помощью apt-get, запустив stretch. Когда я запускаю 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 содержит исходную команду, но она читает ее как файл конфигурации, а не скрипт os. Страница man ничего не говорит о ключевом слове test или о каком-либо указании на запуск скрипта оболочки из файла конфигурации.
Что необходимо сделать для корректной обработки файлов Muttrc.d?
mutt -v
NeoMutt 20170113 (1.7.2)
решение1
Кажется, в вашем /etc/Muttrc
. В моем stretch
-box строки гласят:
source /usr/lib/mutt/source-muttrc.d|
В |
конце строки важно.Mutt-руководствомы читаем в разделе 27:
Если имя файла заканчивается вертикальной чертой («|»), то имя файла считается исполняемой программой, из которой считываются входные данные (например, source ~/bin/myscript|).
По какой-то причине даже muttrc
страница руководства в версии 1.10.1 не документирует эту функцию, но соответствующая manpage от neomuttделает.