shell脚本退出

问题描述:

我试图写一个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

我想你可能会遇到一些问题。我对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