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

本文介绍了一种在Shell脚本中处理错误的实用方法,通过使用'||'操作符来在命令失败时显示错误信息而不改变原有脚本流程。文章详细解释了如何正确地组织命令以确保仅在出错时才触发特定行为。

 

问题:

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

 

解决方案:

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

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

 

讨论:

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

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

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

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

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

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值