【发布时间】:2009-07-02 15:31:53
【问题描述】:
以一种尝试/捕获的形式,我想执行一个在发生错误时不会停止的 bash。
具体的bash是:
#!/bin/sh
invoke-rc.d tomcat stop
rm -fr /var/webapps/
cp -R $WEBAPP /var/webapps/
invoke-rc.d tomcat start
我想执行“invoke-rc.d tomcat stop”,即使Tomcat没有运行,继续执行其他bash命令。
【问题讨论】:
-
这不是 bash 的默认行为吗?我可以发誓它是(如果某些命令失败,您需要采取明确的措施来终止脚本......)
-
如果你执行这个脚本并且tomcat没有运行,这个脚本会因为第一个命令返回错误而停止执行。我希望脚本继续。
-
@Alex:这是默认设置,但有可能会覆盖默认设置。
-
我和 Alex 在一起 - bash 行为不端,或者已配置为(错误)通过退出错误来表现。使用:'set +e' 来抵消 'set -e' 的影响(这意味着出错时终止)。并找出在您的环境设置中导致 bash 行为不端的原因 - 如果您的 shell 因第一个错误而退出,所有类型的脚本都会意外失败。
标签: linux bash error-handling