bash 抓捕异常_Shell Bash 的错误处理

本文介绍了Shell脚本中的错误处理机制。默认情况下,Bash会在遇到失败命令时继续执行后续命令,这可能导致错误累积。为避免这种情况,可以使用command || exit 1来确保命令失败时脚本立即终止。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

所有语言都有异常处理机制,shell 也不例外。java 的异常处理,经常被人们吐槽,那么 shell 的异常处理机制又是怎样的呢?通过本文我们一起来看看。

如果脚本里面有运行失败的命令(返回值非 0),Bash 默认会继续执行后面的命令。

#!/usr/bin/env bash foo echo bar

上面脚本中,foo 是一个不存在的命令,执行时会报错。但是,Bash 会忽略这个错误,继续往下执行。

$ bash script.sh script.sh:行 3: foo: 未找到命令 bar

可以看到,Bash 只是显示有错误,并没有终止执行。

这种行为很不利于脚本安全和除错。实际开发中,如果某个命令失败,往往需要脚本停止执行,防止错误累积。这时,一般采用下面的写法。

command || exit 1

上面的写法表示只要command有非零返回值,脚本就会停止执行。

如果停止执行之前需要完成多个操作,就要采用下面三种写法。

# 写法一 command || { echo "command failed"; exit 1; }

# 写法二 if ! command; then echo "command failed"; exit 1; fi

# 写法三 command if [ "$?" -ne 0 ]; then echo "command failed"; exit 1;

fi

另外,除了停止执行,还有一种情况。如果两个命令有继承关系,只有第一个命令成功了,才能继续执行第二个命令,那么就要采用下面的写法。

command1 && command2

web 前端中文站点评:

【注:本文源自网络文章资源,由站长整理发布】

web 前端中文站 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权

转载请注明原文链接:Shell Bash 的错误处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值