shell中命令执行完之后产生的退出值$?

 $? 是命令在执行完成之后产生的退出值,范围是0-255
 当$?=0时标示命令执行没有错误输出,这个值可以用exit命令指定
 一般情况下echo $?为0就说明上述命令执行正确
 如果echo $?非0就说明上述执行命令错误
 当然我们也可以自己指定退出值,不一定非0就是错误的

进程生命周期
当进程执行完毕时,该进程会调用一个名为_exit的例程来通知内核它已经做好“消亡“的准备了,该进程会提供一个退出码(一个整数)表明它准备退出的原因。按照惯例,0用来表示正常的或者说成功“终止“。

也就是说我们在执行echo $?时返回的值就是进程的退出码,而且这个退出码是由刚执行完的进程提供给系统内核的。

命令执行结果的数字
一般情况下0表示上一条命令执行正确,非0表示错误,错误原因可以查$?的值
先执行一条命令,再去echo $?查看数字

$?返回值所表示的大概含义 例:
0 表示成功
2 权限拒绝
1-125 表示运行失败,脚本命令,系统命令错误或参数传递错误
126 找到命令了但无法执行
127 未找到要运行的命令
128 命令被系统强制结束
255 退出状态码越界

实验
随便输入一条命令,并执行,echo $?发现是127返回值
在这里插入图片描述
执行一条正确命令,然后用echo $?发现返回值为0,表示正常执行
在这里插入图片描述
编辑一个脚本
在这里插入图片描述
执行,执行成功,然后输入 $? 发现返回值为0
在这里插入图片描述
继续编辑,加入正常执行的退出值为20
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值