6. 退出与退出状态
#!/bin/bash
COMMAND_1
...
COMMAND_LAST
# 将以最后的命令来决定退出状态
exit#!/bin/bash
COMMAND_1
...
COMMAND_LAST
#将以最后的命令来决定退出状态
exit $?Last updated
#!/bin/bash
COMMAND_1
...
COMMAND_LAST
# 将以最后的命令来决定退出状态
exit#!/bin/bash
COMMAND_1
...
COMMAND_LAST
#将以最后的命令来决定退出状态
exit $?Last updated
#!/bin/bash
COMMAND_1
...
COMMAND_LAST
#将以最后的命令来决定退出状态#!/bin/bash
echo hello
echo $? # 返回值为0,因为执行成功。
lskdf # 不认识的命令。
echo $? # 返回非0值,因为失败了。
echo
exit 113 # 将返回113给shell
# 为了验证这些,在脚本结束的地方使用“echo $?”
# 按照惯例,'exit 0' 意味着执行成功,
#+ 非0意味着错误或者异常情况。
# 查看附录章节“退出码的特殊含义”true # true 是 shell 内建命令。
echo "exit status of \"true\" = $?" # 0
! true
echo "exit status of \"! true\" = $?" # 1
# 注意在命令之间的 "!" 需要一个空格。
# !true 将导致一个"command not found"错误。
#
# 如果一个命令以'!'开头,那么将调用 Bash 的历史机制,显示这个命令被使用的历史。
true
!true
# 这次就没有错误了,但是同样也没有反转。
# 它不过是重复之前的命令(true)。
# ============================================================ #
# 在 _pipe_ 前使用 ! 将改变返回的退出状态。
ls | bogus_command #bash: bogus_command: command not found
echo $? #127
>
! ls | bogus_command #bash: bogus_command:command not found
echo $? #0
# 注意 ! 不会改变管道的执行。
# 只改变退出状态。
#============================================================ #
>
# 感谢 Stéphane Chazelas 和 Kristopher Newsome。