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
其剂量不会对我 – Terence 2014-09-01 06:43:13
工作,你肯定你的'mpack'命令的工作?你有没有尝试过从命令行?仔细看看它,似乎'-a'不是支持的交换机。 – ice13berg 2014-09-01 06:52:21
是的,我确定它可以在命令行中使用-a 它的工作完美 – Terence 2014-09-01 06:58:07