位置: 编程技术 - 正文

浅谈CI脚本异常退出问题定位(引发脚本异常)

编辑:rootadmin

推荐整理分享浅谈CI脚本异常退出问题定位(引发脚本异常),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:总出现脚本错误,脚本运行异常,脚本出错,脚本出错,脚本出现异常怎么解决,脚本出现异常怎么解决,脚本运行异常,引发脚本异常,内容如对您有帮助,希望把文章链接给更多的朋友!

背景

在CI脚本中,使用类似如下脚本进行项目编译的计时,但在执行过程中,有时会出现CI脚本(命名为ci.sh)未完全执行的情况:

这个脚本,只是模拟我们在CI中的程序,项目编译前计时,项目编译后再次计时,通过sleep休眠来模拟CI中项目编译锁消耗的时间,然后计算出消耗的时间。这个简化的脚本逻辑很简单,我们通过以下命令来调用:

  

这样执行好像并不会出错,那实际CI中为什么会出错呢?

分析

浅谈CI脚本异常退出问题定位(引发脚本异常)

首先,我们发现,当出现脚本未完全执行完成时,不会打印“process time(sec) are”这一句,也就是说错误是这句之前引起的。

另外,细心的朋友还会发现,在脚本的首行,我们给bash使用了-e参数,这个参数的作用就是,一旦shell脚本中任何一行出现了错误,shell脚本就停止运行。所谓的出现错误,也就是这行语句的返回值为非零。那么,CI脚本未完全执行的原因,很可能就是因为某一行语句出现了错误,导致脚本直接退出。

通过增加打印“echo $&#;”来打印上一行语句的执行结果,很快定位到报错的语句在计算处理时间的这一行:

 

这一行看起来十分普通,只是简单的用终止时间减去开始时间,然后赋值给process_time。为什么会返回非0值呢?

原来,expr命令有一个小小的trick,当expr表达式中的计算结果为0时,expr命令就会返回1,而不是通常的0。在我们实际的CI任务中,一旦某个项目编译时间非常短,在1秒钟内完成,那么起止时间系统,其差值也就为0,因此,expr就会返回非零值,而CI脚本也会因此而退出。

以上这篇浅谈CI脚本异常退出问题定位就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持积木网。

Linux查找处理文件名后包含空格的文件(两种方法) 当Linux下文件名中出现空格这类特殊情况话,如何查找或确认那些文件名后有空格呢?又怎么批量替换处理掉这些空格呢?方法1:输入文件名后使用Tab

shell编程跨服务器备份文件 本文实例为大家分享了shell跨服务器备份文件的具体代码,供大家参考,具体内容如下需求:查询某个文件夹下的所有文件,将文件修改时间小于当前时

通过Spring Shell 开发 Java 命令行应用 提到Java,大家都会想到Java在服务器端应用开发中的使用。实际上,Java在命令行应用的开发中也有一席之地。在很多情况下,相对于图形用户界面来说

标签: 引发脚本异常

本文链接地址:https://www.jiuchutong.com/biancheng/368667.html 转载请保留说明!

上一篇:详解Linux中两个查找命令locate和find教程(linux有两个ip)

下一篇:Linux查找处理文件名后包含空格的文件(两种方法)(linux查找文件语句)

  • 房产企业季度预测
  • 一般纳税人销售二手车
  • 债券投资的风险主要有
  • 政府奖励金怎么用
  • 补充协议如何生效
  • 货款为现金如何做记账账款凭证?
  • 待摊费用跨年冲销如何入账?
  • 盘亏的设备做营业外支出的会计分录怎么处理?
  • 标书费收据丢失怎么办
  • 非居民企业的征税范围
  • 2020年餐饮业销售额
  • 营改增后增加了什么征税项目
  • 红字发票需要盖章子吗
  • 小型微利企业核定征收
  • 公司购买房屋涉税问题
  • 应收账款形成的内部原因和外部原因
  • 生物制品税率3%税率什么时候开始的
  • 以前年度损益的一级科目
  • 企业收入确认的依据是什么
  • 电脑记事本在哪里打开
  • nvm是啥
  • 电脑取消共享文件夹
  • php和数据库
  • 总公司的固定资产可以划转子公司
  • 为员工租房租金怎么入账
  • vue做移动端
  • php中file
  • yolov5 教程
  • 库存现金盘亏会计分录无法查明原因
  • 广告费和业务宣传费税前扣除基数
  • 房改转移什么意思
  • php分页页码动态的实现
  • 差额征税专用发票税额怎么算
  • 卖废品收入计入需要交税吗
  • js进阶视频教程
  • uni-app编译
  • 管家婆付款单凭证科目如何修改
  • 土方工程合同签了一般多久开工
  • 房地产企业的开发成本和开发费用有什么区
  • 代垫费用开票明细怎么写
  • 财务状况简单说明
  • mysql在表中添加一个新的属性
  • 没有发票的运输费用怎么入账
  • 企业报税表格填写
  • 主营业务成本是借增贷减吗
  • 广告赞助支出能抵扣吗
  • 先付款后签协议是否违法
  • 建筑业普票与专票怎么抵扣
  • 一般纳税人增值税优惠政策2023
  • 劳务合同如果不发工资怎么办
  • 银行 收美金
  • 跨年度发票的报表怎么填
  • 公司注销后如何起诉他人
  • 职工薪酬一般计入哪些科目进行核算
  • 外购材料用于建筑工程会计分录
  • 公司支付质保金怎么做账
  • 委托收款商业汇票
  • win7系统禁止更新
  • 系统解决问题的方法
  • Linux中cp和scp命令的使用方法
  • win10系统应用和浏览器控制出现感叹号
  • win8.1桌面图标消失
  • win10系统自带功能
  • 炉石传说代码怎么导入
  • javascript的面向对象
  • angularjs2
  • 批处理文件是可执行文件吗
  • 深入学习习总书记系列讲话精神
  • shell脚本特性
  • android自定义组件开发详解
  • python的iloc
  • python提取html内容
  • 原生js实现ajax步骤
  • js原生方法大全
  • 付了120救护车费怎么报销
  • 深圳国税服务
  • 建筑垃圾清运属于什么应税服务
  • 广西空置房物业费减免政策吗
  • 个体工商户 浙江
  • 个人税务登记证怎么注销
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设