Когда переменная sizes
пуста, она будет заменена пустой строкой, как и ожидалось. И в соответствующей части скрипта awk
предполагается, что любая строка, начинающаяся с косой черты, будет началом регулярного выражения, но это действительное регулярное выражение, только если оно заканчивается другой косой чертой. Вы должны убедиться, что sizes
не пусто, чтобы скрипт работал.
set -o nounset
для получения уведомлений о неопределенных (непустых )переменных в ваших скриптах и в сочетании с -o errexit
для остановки скрипта при таких ошибках.
В Red Hat команды uuencode
и uudecode
поставляются с пакетом sharutils
.
В Red Hat Enterprise Linux 4 установите этот пакет с помощью команды up2date.
up2date sharutils
В Red Hat Enterprise Linux 5, Red Hat Enterprise Linux 6 и Red Hat Enterprise Linux 7 установите этот пакет с помощью команды yum.
yum install sharutils
Источник:Какой пакет rpm предоставляет команды "uuencode" и "uudecode"? .
РЕДАКТИРОВАТЬ:
Если цель состоит в том, чтобы отправить электронное письмо с текстовым/простым вложенным файлом, я предлагаю ввести следующие команды:
fileToAttach=cpu_usage.log
(printf "To: XXXXXX@gmail.com\n"
printf "From: XXXXXX@gmail.com\n"
printf "MIME-Version: 1.0\n"
printf "Content-Type: text/plain; charset=\"US-ASCII\"\n"
printf "Content-Transfer-Encoding: 7bit\n"
printf "Subject: Issue with CPU\n\n"
printf "echo Issue with CPU\n"
cat "$fileToAttach"
)| /usr/sbin/sendmail -t
Как упоминалось в комментарии @AnFi , это решение предоставляет пустую строку для отделения заголовков электронной почты от тела электронной почты.