У меня есть t csh код ниже.
Все, что я хочу сделать, - это присвоить SUCCESS или FAIL команды «mail» переменной «mail_status» и использовать «mail_status» 'значение для печати сообщения STDOUT.
Ожидается, что почтовая команда вернет 1, если какой-либо из получателей в списке "to" является недействительным. Если все получатели действительны, тогда возвращается статус 0.
- Я попробовал код, раскомментировав все "_TRY_1". Это НЕ работало так, как я хотел, и 'mail_status' был пустым, и поэтому выполнял условие else.
- Я попытался закомментировать "_TRY_1" и раскомментировать "_TRY_2_". Он даже НЕ выполнялся
- Я пытался закомментировать "_TRY_2" и раскомментировать "_TRY_3_". НЕ РАБОТАЕТ
Мой вопрос: почему _TRY_1 _TRY_2_ и _TRY_3_ не работают?
#! /tool/pandora/bin/tcsh
set eval_1 = PASSED
set eval_2 = PASSED
set mail_status = 7
if ($eval_1 == "PASSED" && $eval_2 == "PASSED") then
echo "1"
# _TRY_1_ set mail_status = `mail -s " PASSED, 1: $eval_1, 2: $eval_2" foo@foo.com < tmp1.log`
# _TRY_2_ set mail_status = eval "mail -s " PASSED, 1: $eval_1, 2: $eval_2" foo@foo.com < tmp1.log"
# _TRY_3_ set mail_status = `mail -s " PASSED, 1: $eval_1, 2: $eval_2" foo@foo.com < tmp1.log`
else
echo "2"
# _TRY_1_ set mail_status = `mail -s " FAILED, 1: $eval_1, 2: $eval_2" foo@foo.com < tmp2.log`
# _TRY_2_ set mail_status = eval "mail -s " FAILED, 1: $eval_1, 2: $eval_2" foo@foo.com < tmp2.log"
# _TRY_3_ `mail -s " FAILED, 1: $eval_1, 2: $eval_2" foo@foo.com < tmp2.log`
endif
# _TRY_3_ set mail_status = $status
echo ""
# _TRY_3_ echo "mail_status = $status"
echo ""
if ($mail_status == 0) then
echo ""
echo "EMAIL SENT"
echo ""
else
echo ""
echo "FAILED SENDING EMAIL"
echo ""
endif