bash脚本错误检查

在bash shell 脚本中总是需要对已经执行命令作错误检查, 以便进行下一步处理.

而错误处理一般类似linux native C app或perl脚本中 "or die"的语法style. 故稍作整理记录之:


#!/bin/bash

ERROR=$'\e'[31\;47m"Error: "
EEND=$'\e'[0m'\n'

function die() {
    [ "$1" ] && echo -e ${ERROR}$*$EEND
    # will uncomment below without test
    #exit 1;
}
# like perl: false or die
which ]
[ $? -eq 0 ] || { die 1. no "]";}
# fail then die
which ]
(($?)) && { die 2. no "]";}
which ]
(($?)) && { which type; die no ];} || { echo find;}
which ]
(($?)) && { which type; } || { echo find;}  # Pitfall: go on to the second brace block


PS: ] 不是bash保留字, 更不是metachar元字符, 而[ 作为命令第一个word时是test的同义词, 且都是builtin命令:

~/tmp$ type test
test is a shell builtin
~/tmp$ type [
[ is a shell builtin

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值