微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Bash:如何捕获错误原因?

我想在 shell脚本中捕获错误,然后生成一些报告,说明错误原因:

trap 'error_handler' ERR

在我的error_handler函数中,我想说明为什么ERR信号被捕获的原因(例如“权限被拒绝”,“找不到远程主机”等).

这可能吗?

解决方法

并不是的.保证在错误处理程序中可用的唯一信息是触发ERR的进程的退出状态,在$?中.您甚至不知道进程的名称或进程ID.我认为错误处理程序在退出脚本之前用于通用清理,因此哪个进程具有非零退出状态或原因并不重要.

最好在发生错误时立即报告或处理错误,如下所示:

rm foo || { echo "File removal Failed"; }

请注意,大多数命令会将自己的故障通知打印到标准错误.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐