跳过正文
  1. Posts/

忽略 Jenkins Shell 步骤中的故障

·389 字·1 分钟· ·
沈显鹏
作者
沈显鹏
目录

《Jenkins Tips 1》 —— 每期用简短的图文描述一个 Jenkins 小技巧。

问题
#

  • 不希望 Shell 脚本因失败而中止
  • 想一直运行 Shell 脚本并报告失败

解决
#

方法一
#

运行 Shell 时,你可以通过使用内置的 +e 选项来控制执行你的脚本错误。这可以禁用“非 0 退出”的默认行为。

请参考如下四个示例中的测试 Shell 和测试结果 Console Output。

示例一
#

执行的时候如果出现了返回值为非零(即命令执行失败)将会忽略错误,继续执行下面的脚本。

set +e
ls no-exit-file
whoami

示例一:测试结果

示例二
#

执行的时候如果出现了返回值为非零,整个脚本就会立即退出。

set -e
ls no-exit-file
whoami

示例二:测试结果

方法二
#

示例三
#

还有一种方式,如果不想停止失败的另一种方法是添加 || true 到你的命令结尾。

# 做可能会失败,但并不关注失败的命令时
ls no-exit-file || true

示例三:测试结果

示例四
#

如果要在失败时执行某些操作则添加 || <doSomethingOnFailure>

# 做可能会失败的事情,并关注失败的命令
# 如果存在错误,则会创建变量 error 并将其设置为 true
ls no-exit-file || error=true

# 然后去判断 error 变量的值。如果为真,则退出 Shell
if [ $error ]
then
   exit -1
fi

示例四:测试结果

相关文章

Jenkins Linux Agent 配置
·353 字·1 分钟
本文提供了 Jenkins Linux Agent 的逐步配置指南,包括 Java 运行时的准备、节点创建以及常见问题的排查方法。
Jenkins Windows Agent 配置
·608 字·2 分钟
本文提供 Jenkins Windows Agent 的详细配置步骤,包括 Java 运行时准备、节点创建以及常见问题的排查方法。
Jenkins 与 Bitbucket Webhooks 的配置和使用
·1303 字·3 分钟
本文介绍如何在 Jenkins 中配置 Bitbucket Webhooks,以便在创建 Pull Request 时自动触发 Jenkins 构建。
这也能用Jenkins?快速实现一个定期批量登录远程虚拟机并支持添加新的主机名称的Job
·910 字·2 分钟
本文介绍了如何使用 Jenkins 实现定期批量登录远程虚拟机,并支持用户添加新的主机名称,提供了完整的实现代码和步骤。
如何确保在提交 Jenkins Pipeline 前没有语法错误
·962 字·2 分钟
本文介绍了两种方法来确保在提交 Jenkins Pipeline 前没有语法错误:使用 REST API 进行语法校验和使用 VSCode 插件进行语法检查。
如何将 Bitbucket 仓库同步到 GitHub
·1218 字·3 分钟
介绍如何通过 Jenkins 将 Bitbucket 仓库的 master 分支同步到 GitHub。