Raspberry Pi で Mutt を起動すると、Muttrc の処理中にエラーが発生する

Raspberry Pi で Mutt を起動すると、Muttrc の処理中にエラーが発生する

最近、stretch を実行して apt-get で Pi をアップグレードしました。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 キーワードについては何も記載されておらず、設定ファイルからシェル スクリプトを実行することについても何も示されていません。

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のマニュアルページにもこの機能は記載されていないが、対応する neomutt の manpageそうします。

関連情報