【BASH】出错时显示错误信息

来源:互联网 发布:wpsword表格数据排序 编辑:程序博客网 时间:2024/06/05 04:15

 

问题:

你期望你的脚本显示尽量多的错误提示信息。你期望在某个命令失败的时候看到错误信息,不过你不希望改变原有的脚本流程(ps.增加if判断)

 

解决方案:

shell脚本程序员的一个惯用方法是使用'||'分隔命令和调试或错误信息,下面是一个例子:

cmd|| printf "%b" "cmd failed. You're on your own/n"

 

讨论:

'&&'类似,'||'告诉shell在第一个命令执行成功的时候就不执行第二个表达式。'||'c语言中的逻辑运算是类似的—Aor B。不过shell脚本汇总,当地一个命令返回0i.e.,成功)的时候就继续,只有当第一个命令返回非零值的时候,第二部分才会执行。

注意,不要被下面的形式猕猴:

cmd|| printf "%b" "FAILED./n" ; exit 1

exit在两种情况下都会被执行。这个OR只是在'||'分隔的两个命令之间。如果你期望只有出错的时候退出,那么要将后面这两个语句用大括号包起来,如下:

cmd|| { printf "%b" "FAILED./n" ; exit 1 ; }

由于bash的语法,exit后面的这个分号是必须的,并且最后的大括号必须使用空格分隔。

 

原创粉丝点击