Проблема с выпуском скрипта bash blcheck

Сценарий bash blcheck из проблем формата github с выходом по электронной почте

Консольный вывод отображается корректно, но при отправке по электронной почте через mailx будет идти как вложение, а не в тело.
33 %% dnsbl.inps.de ✓
50 %% xbl.spamhaus.org ✓

Вывод на файл или адрес электронной почты:
16 %% dnsbl-3.uceprotect.net ^ MESC (BESC [m 16 %% dnsbl-.uceprotect.net ✓ESC (BESC [м

Посоветуйте PLS о том, как я могу исправить формат в файле и электронной почте?

CMD, который не отправляет тело eamil:

sh blcheck -v xx.xx.xx.xx | mail -s "server-blcheck sh blcheck -v xx.xx.xx.xx | mail -s "server-blcheck date " user@email.exampel

script: https://github.com/IntellexApps/blcheck


После помощи @ john1024 & @cas и предыдущего сообщения Удаление контрольных символов ниже разрешенной проблемы.

 CMD: ./blcheck-l -v xx.xx.xx.xx | perl -pe 's/\e([^[]]|[.*?[a-zA-Z]|].*?\a)//g' | col -b | mail -s "blcheck-l -v `date`" email@address 

darko-poljak отправил запрос на github с новым вариантом, чтобы сделать вывод дружественным для неинтерактивного использования.
https://github.com/IntellexApps/blcheck/pull/2

  • с учетом регистра gnu mv на Mac OS X
  • Тип файла и разыменование при указании каталога с помощью команды LS
  • Могу ли я сделать «меньше» выполнение произвольных команд с помощью одной последовательности клавиш?
  • Смутно о поведении звездочки в команде ls
  • Снижение синонима MySql и создание
  • Есть ли способ установить размер списка истории в bash более чем на 5000 строк?
  • рекурсивный 'ls', дающий абсолютные имена файлов
  • Почему бы не использовать бесступенчатые shebangs?
  • One Solution collect form web for “Проблема с выпуском скрипта bash blcheck”

    Что вы видите, это escape-последовательности ANSI. В blcheck они используются для изменения цвета текста, отображаемого на терминале . Как вы обнаружили, они не работают в сообщениях электронной почты.

    Чтобы удалить их навсегда, отредактируйте скрипт blcheck с помощью вашего любимого редактора. Найдите строки:

     RED=$(tput setaf 1) GREEN=$(tput setaf 2) YELLOW=$(tput setaf 3) CLEAR=$(tput sgr0) 

    И замените эти строки:

     RED= GREEN= YELLOW= CLEAR= 

    Это предотвратит blcheck в последовательности ANSI.

    Более гибкий подход

    Возможно, что код работает как для терминала (ANSI), так и для конвейера (без ANSI). Следующие тесты кода показывают, является ли stdout терминалом. Если это так, он устанавливает цветовые переменные в требуемые последовательности ANSI. Если это не терминал, не генерируются последовательности ANSI.

     RED= GREEN= YELLOW= CLEAR= if [ -t 1 ] then RED=$(tput setaf 1) GREEN=$(tput setaf 2) YELLOW=$(tput setaf 3) CLEAR=$(tput sgr0) fi 
    Linux и Unix - лучшая ОС в мире.