Выполнение команды mailx в сценарии оболочки
У меня есть простой сценарий оболочки, который выполняет сценарий.sql. Когда сценарий.sql завершен, сценарий оболочки отправляет электронное письмо на указанный адрес с уведомлением о том, успешно ли выполнен сценарий.sql.
Моя проблема в том, что строка темы усекается. Я использую простое утверждение IF, чтобы определить строку темы:
grep 'ORA-' $OUTFILE > /dev/null 2>&1
if [ $? = 1 ]; then
ERRORS=n
SUBJECT= "$VERSION script successful"
else
ERRORS=y
SUBJECT="$VERSION script had error(s)"
fi
Это отлично работает. Однако когда я выполняю команду mailx, строка темы усекается до "Разработка" или "Производство" в зависимости от версии сценария, который был выполнен:
mailx -s $SUBJECT $EMAIL < $MAILFILE
Я знаю, что строка темы должна быть в двойных кавычках, если она включает в себя встроенные пробелы, но, похоже, это не работает правильно при назначении переменной.
Это можно обойти? Есть ли способ избежать двойных кавычек
1 ответ
Вам нужно процитировать $SUBJECT
как вы используете это, т.е.
mailx -s "$SUBJECT" $EMAIL < $MAILFILE
Также не должно быть места в
SUBJECT="$VERSION script successful"