Intereting Posts
Добавьте каждые две строки подряд в колонку и разделите ее на предыдущую и напечатайте Настройка ярлыков для Sakura Настройка принтера для использования только формата A4 Наложение текста в PDF через командную строку Настройка регулятора ЦП по требованию или консервативное Выделение пользовательского синтаксиса в Gedit Звуковая передача SoundWire, но без звука поиск начальной и конечной позиции общего идентификатора Имеет ли Yum эквивалент DEBIAN_FRONTEND = aptitude = неинтерактивный? как запустить задание cron с конкретным пользователем? Что вы называете соглашением о вызовах `int 0x80`? Скрипт для добавления пути к файлу рекурсивно Просмотр истории эхо-текста на терминале Реализация симметричной NAT с дополнительным портом источника? (программное обеспечение / ОС или аппаратный маршрутизатор) Как создать файлы, используя строки в TXT-файле?

Нужен вывод в отдельных строках – Shell Script

Я написал этот скрипт для регистрации электронной почты, если на диске больше 90. Пожалуйста, помогите мне получить вывод в отдельных строках. Вот мой код:

#!/bin/bash errortext="" EMAILS="abc@xyz.com" for line in `df | awk '{print$6, $5, $4, $1} ' ` do # get the percent and chop off the % percent=`echo "$line" | awk -F - '{print$5}' | cut -d % -f 1` partition=`echo "$line" | awk -F - '{print$1}' | cut -d % -f 1` # Let's set the limit to 90% when alert should be sent limit=90 if [[ $percent -ge $limit ]]; then errortext="$errortext $line" fi done # send an email if [ -n "$errortext" ]; then echo "$errortext" | mail -s "NOTIFICATION: Some partitions on almost full" $EMAILS fi 

Не пытайтесь сохранять выходные данные в переменных и не пытайтесь перебирать выходные данные команд, когда вам это не нужно.

 #!/bin/bash mailto=( abc1@xyz.com abc2@xyz.com ) tmpfile=$( mktemp ) df | awk '0+$5 > 90' >"$tmpfile" if [ -s "$tmpfile" ]; then mail -s 'NOTIFICATION: Some partitions on almost full' "${mailto[@]}" <"$tmpfile" fi rm -f "$tmpfile" 

Это отправляет соответствующие строки вывода df по адресам, перечисленным в массиве mailto если есть строки, процент которых превышает 90%. 0+$5 заставит awk интерпретировать пятое поле как число. Тест -s для файла завершается успешно, если файл не пустой. mktemp создает временный файл и возвращает его имя.