我最近用 apt-get 升级了我的 pi,运行了 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
muttrc 的手册页中有 source 命令,但它将其读取为配置文件,而不是 os 脚本。手册页没有提到 test 关键字,也没有提到从配置文件运行 shell 脚本。
要正确处理 Muttrc.d 文件需要做什么?
mutt -v
NeoMutt 20170113 (1.7.2)
答案1
您的 中似乎有一个错误(无论出于什么原因)/etc/Muttrc
。在我的stretch
-box 上,以下行显示:
source /usr/lib/mutt/source-muttrc.d|
这|
行尾的 很重要。杂种手册我们在第27节中读到:
如果文件名以竖线(“|”)结尾,则文件名被视为可从中读取输入的可执行程序(例如 source ~/bin/myscript|)。
出于某种原因,甚至muttrc
版本 1.10.1 中的手册页也没有记录该功能,但相应的 neomutt 的手册页做。