为什么kill会使bash脚本退出

在kill语句之后脚本输出“Terminated”,下面的行永远不会被执行:

#!/bin/bash kill -9 `ps -ef | grep MailSender | grep -v grep | awk '{print $2}'` echo starting ./MailSender 

我甚至尝试在开始时添加set +e ,但是在杀死后仍然会退出。

你的脚本的名字是否包含MailSender ? 尝试改变它,如果是的话。 另外,使用pkill -9 ,它会更干净:

 #!/bin/bash pkill -9 MailSender echo starting ./MailSender 

pkill将杀死包含MailSender的任何东西,也许你的脚本包含名字中的MailSender。 更改。