阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Shell 脚本中的exit状态解释

30次阅读
没有评论

共计 1132 个字符,预计需要花费 3 分钟才能阅读完成。

导读 命令的返回值是其退出状态,退出状态用于检查命令执行的结果(成功 / 失败)。如果退出状态为 0,则命令执行成功。如果命令失败,则退出状态为非零。

下面表格中是返回值对应着退出状态的解释:

返回值 退出状态
0 成功
非 0 状态 失败
2 用法不正确
126 不是可执行文件
127 没有找到指令
$? 特殊变量

shell 中的变量名 $? 是一个特殊的内置变量,可以获取最后一次执行命令的退出状态。
Shell 脚本中的 exit 状态解释

  • 在执行 shell 函数后,$?返回函数中最后一次执行命令的退出状态。
  • 在执行 shell 脚本后,$?返回脚本中最后一次执行命令的退出状态。
包含退出状态的脚本实例

以下 exit_status.sh 脚本显示了几种退出状态:

[root@localhost scripts]# vim exit_status.sh 

#! /bin/bash

echo -e "Successful execution"
echo -e "====================="
echo "hello world"
# 退出状态为 0,因为命令执行是成功的。echo "Exit status" $? 
echo .
echo -e "Incorrect usage"
echo -e "====================="
ls --option
# 使用了错误的用法,所以退出状态为 2。echo "Exit status" $? 
echo .
echo -e "Command Not found"
echo -e "====================="
bashscript
# 退出状态为 127,因为该脚本或者命令不存在。echo "Exit status" $? 
echo .
echo -e "Command is not an executable"
echo -e "============================="
touch execution.sh
ls -l execution.sh
./execution.sh
# 退出状态为 126,因为该文件没有执行权限。echo "Exit status" $?
echo .
echo -e "Custom status"
echo -e "====================="
function test1(){if [ ! -x "./execution.sh"]; then
     echo "\"./execution.sh\"no execute permission!!"
     return 66
  fi
}
test1
# 退出状态为 66,函数 test1 中判断文件是否不存在,不存在就返回 echo 语句,并定义了返回值。echo "Exit status" $?

Shell 脚本中的 exit 状态解释
下面是执行结果后,返回的各种退出状态。
Shell 脚本中的 exit 状态解释

总结

命令的返回值是其退出状态,退出状态用于检查命令执行的结果(成功 / 失败)。如果退出状态为 0,则命令执行成功。如果命令失败,则退出状态为非零。

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计1132字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中