ksh 命令退出状态

-- Start

每个 Linux 命令,脚本或函数都有一个退出状态,它用来指示该命令,脚本或函数是否执行成功。0 代表成功,其他值(1-255) 代表失败。

退出状态   描述
1-125    命令执行失败
2        命令使用错误,如参数传递不正确
126      命令不可执行
127      找不到命令
128-255  外部命令执行失败
256	     由于一个信号,命令终止
对于函数来说,我们可以使用 return 语句来返回退出状态,如果一个函数没有 return 语句,默认返回函数中最后执行语句的的退出状态。对于脚本来说,我们可以使用 exit 语句来返回退出状态,如果一个脚本没有 exit 语句,默认返回脚本中最后执行语句的的退出状态。有一点需要特别注意,当脚本中的一条命令执行失败时,整个脚本并不会停止运行,所以对于可能出错的命令,我们最好检查它的退出状态,我们可以通过变量 $? 来得到它的退出状态。下面是一个简单的例子。

#!/bin/ksh  

grep test test.txt > /dev/null;

exit_code=$?;
if [[ $exit_code -ne 0 ]]; then  
    print "command failed."
	exit 1;
fi

事实上,我们可以把命令直接写在 if 语句中,如下:

#!/bin/ksh  

if grep test test.txt > /dev/null; then  
    print "command success.";
else
    print "command failed.";
    exit 1;
fi

如果每条语句都这么检查退出状态,那么你的脚本会很长,其实,我们还可以这么写。

#!/bin/ksh  

# 利用逻辑运算符的短路特性
grep test test.txt > /dev/null && print "command success."
grep test test.txt > /dev/null || print "command failed.";exit 1

-- 更多参见: ksh 精萃

-- 声 明:转载请注明出处

-- Last Updated on 2015-09-29
-- Written by ShangBo on 2015-09-29
-- End


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值