bash – 在“陷阱EXIT”中获取shell脚本的exitcode
我想在我的
Bash脚本中进行清理操作,如下所示:
#! /bin/bash set -eu trap 'echo "E: failed with exitcode $?" 1>&2' ERR true false 使用$?脑海中浮现出一种自然的选择,但事实并非如此.它总是包含0.有没有什么方法可以“侦察”ERR陷阱中的exitcode? [更新:]我不知道我之前测试过的是什么.这段代码就像一个魅力,所以我把它留在这里作为一个小而好的例子. 解决方法
您的(可能是简化的)示例没有显示您提到的问题:
+ set -eu + trap 'echo "E: failed with exitcode $?" 1>&2' ERR + true + false ++ echo 'E: failed with exitcode 1' E: failed with exitcode 1 有可能返回ERR的命令在&&或||,或受以下摘录中提到的其他条件限制.引自manual:
例如,如果您有以下内容: #! /bin/bash set -eu trap 'echo "E: failed with exitcode $?" 1>&2' ERR false && true 执行它不会导致失败被困: + set -eu + trap 'echo "E: failed with exitcode $?" 1>&2' ERR + false (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 推荐!《数据结构》演示程序(提供下载)
- anguar4 共享服务在多个组件中数据通信
- Yum安装LAMP(Centos7.2+Apache2.4+Mariadb5.5.56+PHP7.0.24
- angularjs 前端js正则表达式的运用
- twitter-bootstrap – 锚点标记不显示为按钮使用twitter引导
- gsoap webservice weatherservice
- angularjs – “base href”使用ui-router在路由URL中添加目
- 如何在Docker上安装tshark?
- bootstrap插件bootbox参数和自定义弹出框宽度设置
- 免费WebService对外接口(汇总)