前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jenkins Tips 001: 忽略 Shell 步骤中的故障

Jenkins Tips 001: 忽略 Shell 步骤中的故障

作者头像
Peter Shen
发布2020-06-28 16:00:54
3.9K0
发布2020-06-28 16:00:54
举报
文章被收录于专栏:持续集成持续集成

问题

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

解决

方法一

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

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

示例一

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

代码语言:javascript
复制
$ set +e
$ ls no-exit-file
$ whoami

示例一:测试结果

示例二

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

代码语言:javascript
复制
$ set -e
$ ls no-exit-file
$ whoami

示例二:测试结果

方法二

示例三

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

代码语言:javascript
复制
# 做可能会失败,但并不关注失败的命令时
$ ls no-exit-file || true

示例三:测试结果

示例四

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

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

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

示例四:测试结果

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DevOps攻城狮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题
  • 解决
    • 方法一
      • 方法二
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档