Проблема с выпуском скрипта 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

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 
  • Как отформатировать команду curl для специальной задачи?
  • Эквивалент «который» в sh
  • разница между / bin / bash и "."
  • strace не находит функцию оболочки с ошибкой «Can not stat»
  • Как читать весь скрипт оболочки перед его исполнением?
  • При использовании popd, как нажимать текущий каталог на стек?
  • Как я могу связываться с сокером Unix сокета через оболочку на Debian Squeeze?
  • Принудительно создать жесткую ссылку (ы) каталога?
  • эквивалент linux / bash для mv -t
  • Что такое расщепление слов? Почему это важно в программировании оболочки?
  • Временное сохранение вывода команд оболочки в tmpfs
  • zsh globbing - поиск файлов с повторяющимися строками имен файлов
  • Interesting Posts

    Emacs Hexl для чтения файлов устройств?

    сравнить два файла и получить данные

    Как выполнить ping GW в подсети?

    Не расширяйте отображение командной строки (cmap), пока не нажмете enter в vim

    Странные результаты тройного трубопровода в STDOUT & tee / dev / null> (wc -l> tmp.txt) & piping снова внедряют `cat tmp.txt`

    Настройка задержки клавиатуры в TTY?

    Программный центр не работает на kali linux?

    Действительно ли символические ссылки влияют на использование диска?

    Как определить aptitude для автоматической установки отсутствующих пакетов вместо того, чтобы удалять их в зависимости от зависимостей?

    Как полностью отключить обмен?

    Массовое переименование и изменение размера с помощью Imagemagick

    Что означает «-45.el7» в «httpd 2.4.6-45.el7»?

    Напишите bash_history в файл с меткой времени

    btrfs на openSUSE не освобождает дисковое пространство

    Где просмотреть журнал ошибок для уже готовой команды tar tar?

    Linux и Unix - лучшая ОС в мире.