2014-09-01 3 views
0

я пытаюсь написать сценарий оболочки, который будет посылать мне по электронной почте, прежде чем покинуть себясценарий оболочки, которые посылают электронную почту перед выходом

или

, как я бегу это на запрос Amazon EC2 DEBAIN пятна, и это должен прислать мне по электронной почте, прежде чем случаях расторгается

  #!/bin/bash 
      sendEmailLog() 
      { 
      emailLog=true 
       if [ $emailLog = "true" ];then 
        /usr/bin/mpack -s "emailed log" -a "/srv/log.html" "[email protected]"; 
       fi 
       exit 0; 
      } 

      trap sendEmailLog INT TERM EXIT KILL QUIT 

      aws ec2 terminate-instances instances ID 

я попробовал код выше он оленья кожа отправить мне письмо до его прекращено я использую DEBAIN 7

ответ

1

Думаю, у вас может быть пара вопросов. Я не очень хорошо знаком с mpack, но похоже, что ваш синтаксис правильный (кроме «;» в конце). Сделайте пару изменений ниже и посмотрите, помогает ли это.

Я бы использовал кавычки, определяющие вашу строку emailLog, хотя на самом деле не совсем понятно, почему вы используете строку для логического оператора, который, насколько я могу судить, вы хотите ВСЕГДА запускать. Если вы не хотите получить код ошибки.

emailLog="true" 

Для проверки равенства используется два ==:

if [ $emailLog == "true" ]; then 

И, как я уже сказал, ';' является излишним.

Если бы я был переписать его, я бы написал так:

sendEmailLog() { 
    /usr/bin/mpack -s "emailed log" -a "/srv/log.html" "[email protected]" && exit 1 
    exit 0 
} 

trap sendEmailLog SIGINT SIGTERM SIGKILL 

aws ec2 terminate-instances instances ID 
+0

его доза не работает для меня – Terence

+0

вы уверены, что ваши 'команда работает mpack'? Вы пробовали это из командной строки? Если посмотреть на него ближе, то не будет видно, что '-a' является поддерживаемым коммутатором. – ice13berg

+0

да, я уверен, что он работает с -a в командной строке его рабочий совершенный – Terence

Смежные вопросы