Bash:如何捕获错误原因?

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

trap 'error_handler' ERR

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

这可能吗?

解决方法

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

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

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

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

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...