Если есть «Проблемы Первого Мира» для сценариев, это было бы так.
У меня есть следующий код в скрипте, который я обновляю:
if [ $diffLines -eq 1 ]; then
dateLastChanged=$(stat --format '%y' /.bbdata | awk '{print $1" "$2}' | sed 's/\.[0-9]*//g')
mailx -r "Systems and Operations <sysadmin@[redacted].edu>" -s "Warning Stale BB Data" jadavis6@[redacted].edu <<EOI
Last Change: $dateLastChanged
This is an automated warning of stale data for the UNC-G Blackboard Snapshot process.
EOI
else
echo "$diffLines have changed"
fi
Сценарий отправляет электронную почту без проблем, но команда mailx вложена в оператор if, поэтому у меня остается два варианта:
- Поставьте
EOI
новую строку и разбейте шаблоны отступов или - Держите с отступом, но используйте что-то вроде выражения echo, чтобы mailx высосал мою электронную почту.
Я открыт для альтернатив heredoc, но если есть способ обойти это, это мой предпочтительный синтаксис.
$dateLastChanged
), если я сделаю в вашем примере вещь с кавычками +, но если я беру дефис и кавычки и помещаю EOI в Новая линия начинает расширяться снова.