shell脚本:exit退出当前进程

exit

exit是一个shell内置命令,用于退出当前用户的登录状态(退出shell进程)。exit 命令可以接受一个整数值作为参数,代表退出状态。如果不指定,默认状态值是 0。

例如:

[root@linus ~]# bash
[root@linus ~]# exit
exit
[root@linus ~]# echo $?
0
[root@linus ~]# exit
登出

脚本中的exit

既然exit是退出当前进程,在脚本中的应用就是退出当前脚本进程,也就是执行到exit后,直接退出,不再执行后续命令,所以说,exit需要谨慎写入,确保执行完你想要的效果后再退出。

exit的使用,通常有一个前提,就比如说,脚本的执行效果或者反馈结果,是你想要的效果,就退出脚本,或者说,你不想要脚本某后半部分命令,只执行前半部分,在前半部分后面加上exit,就会退出脚本,不再执行后续命令。

脚本中使用exit

格式: exit 返回值

嗯?怎么多了一个返回值,直接使用不可以吗?当然可以,没有定义返回值的话,默认返回值是在执行脚本中,exit上面一条命令的返回值。如果定义返回值,那就是你定义的返回值。可以查询$?变量来查看返回值。

exit 退出状态只能是一个介于 0~255 之间的整数,其中只有 0 表示成功,其它值都表示失败。

理解案例

通过一个简单的案例,来了解一下exit的具体使用。

#!/bin/bash
read -p "请输入(yes|no):" a
case $a in 
yes)
	echo	"您输入的是yes"
	exit 1
	echo 	"我是yes,能看见我吗"
	;;
no)
	echo	"您输入的是no"
	echo 	"我是no,能看见我吗"
	;;
*)
	echo 	"输入错误,请输入yes|no"
esac

执行效果:

[root@linus ~]# sh exit.sh 
请输入(yes|no):yes
您输入的是yes
[root@linus ~]# sh exit.sh 
请输入(yes|no):no
您输入的是no
我是no,能看见我吗

可以看到,输入yes的时候,少了一个echo输出,而输入no的时候,全部都显示出来,就是因为加上exit后,执行到exit直接结束脚本。

你可能感兴趣的:(linux命令,shell脚本)