2014-09-01 236 views
0

我試圖寫一個shell腳本,將發電子郵件給我退出自己之前之前發送電子郵件shell腳本退出

,因爲我在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 2014-09-01 06:43:13

+0

工作,你肯定你的'mpack'命令的工作?你有沒有嘗試過從命令行?仔細看看它,似乎'-a'不是支持的交換機。 – ice13berg 2014-09-01 06:52:21

+0

是的,我確定它可以在命令行中使用-a 它的工作完美 – Terence 2014-09-01 06:58:07