Как говорит @infixed, заголовок X-Spam-Status продолжается на несколько строк.
Если у вас установлен procmail
, вы можете использовать его утилиту formail
для объединения продолженных заголовков.
Из man formail
:
-c Конкатенировать продолженные поля в заголовке. Может быть удобно при постобработке почты стандартными (линейно-ориентированными) текстовыми утилитами.
Например:
set print_command="formail -c | grep -v X-Spam-Status: | $HOME/bin/mutt_print.sh"
Еще лучше, вы можете использовать formail -I
для удаления заголовка, без необходимости grep -v
:
set print_command="formail -I X-Spam-Status | $HOME/bin/mutt_print.sh"
-I headerfield
То же, что и -i, за исключением того, что все существующие подобные поля просто удаляются. Если headerfield состоит только из имени поля, это эффективно удаляет поле.
RE: улучшения скрипта:
Зачем использовать vim (и hardcopy), если существуют такие инструменты, как a2ps
и enscript
?
Оба этих инструмента имеют всевозможные полезные опции для форматирования текста и вывода postscript.
Почему медленный while read line...
цикл, когда можно просто использовать cat ${1:--} > "$infile"
для сохранения stdin в файл?
Всегда ставьте двойные кавычки вокруг переменных, когда используете их. Например, не используйте $infile
, вместо этого используйте "$infile"
.
Используйте $(...), а не обратные ссылки.
Скрипт не использует никаких специфичных для bash функций, поэтому используйте #!/bin/sh
(или, возможно, #!/bin/dash
, если он у вас установлен).
Если вы используете mkdir -p
, вам не нужно проверять, существует ли уже каталог. mkdir -p
уже делает это за вас.
gjots2lpr
из пакета gjots2, похоже, делает большинство или все то, что делает ваш сценарий.
Ваш скрипт можно заменить простой оберткой вокруг gjots2lpr
, которая устанавливает переменные окружения, используемые им для переопределения значений по умолчанию (например, чтобы указать ему, использовать ли a2ps
или enscript
, какую программу просмотра ps/pdf использовать, какую команду печати использовать и т.д.).
Из gjots2lpr -h
:
Использование: gjots2lpr [-pt ] [ filename ... ]
Печатает текстовый файл - по возможности используя postscript или PDF и доступные предварительный просмотр и диалог принтера. Программа ищет и использует любые утилиты, которые он может найти в системе.
Если 'filename' не задано, то печатается STDIN.
Большинство проблем, связанных с добавлением гостей в virtualbox, решается путем создания группы на хосте с именем vboxusers (если она еще не создана)
groupadd vboxusers
и добавления вашего пользователя в эта группа:
sudo usermod -aG vboxusers $your_username