《高级Bash脚本编程指南》学习笔记(7)——基础:退出/退出码

退出码

exit 被用来结束一个脚本,它也返回一个值,这个值会传递给脚本的父进程,父进程会使用这个值做下一步的处理。

每个命令都会返回一个 退出状态码 (有时候也被称为 返回状态 ). 成功的命令返回0, 而不成功的命令返回非零值, 非零值通常都被解释成一个错误码. 行为良好的UNIX命令, 程序, 和工具都会返回0作为退出码来表示成功, 虽然偶尔也会有例外

同样的, 脚本中的函数和脚本本身也会返回退出状态码. 在脚本或者是脚本函数中执行的最后的命令会决定退出状态码. 在脚本中, exit nnn命令将会把nnn退出码传递给shell(nnn必须是十进制数, 范围必须是0 - 255)

当脚本以不带参数的exit命令来结束时, 脚本的退出状态码就由脚本中最后执行的命令来决定(就是exit之前的命令)

不带参数的exit命令与 exit $?的效果是一样的, 甚至脚本的结尾不写exit, 也与前两者的效果相同

ex-退出和退出码:

#!/bin/bash

echo hello
echo $?

echo

lskdf
echo $?

echo

exit 113

运行结果:

hello
0

exit-test.sh: line 8: lskdf: command not found
127

运行完成后查看退出码:

$ echo $?
113

ex2-反转条件:

#!/bin/bash
# inversion-condition.sh

true
echo "exit status of \"true\" = $?"

! true
echo "exit status of \"!true\" = $?"
运行结果:

exit status of "true" = 0
exit status of "!true" = 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值