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直接结束脚本。