Shell exit语句的用法(附带实例)
在系统中是有 exit 命令的,用于退出当前登录的用户、退出切换用户身份、退出切换组身份。但是在 shell 脚本中,exit 语句是用来退出当前脚本的。
也就是说,在 shell 脚本中,只要碰到 exit 语句,后续的程序就不再执行,而是直接退出脚本。
exit 语句的语法如下:
exit 返回值为 0~255,通常默认正常退出后的返回值为 0,其余数字可以通过自定义来表示不同情况的异常退出。我们可以在 case 语句、for 循环、while 循环等语句中使用 exit 表示退出脚本。
例如,我们在 while 循环中写过一个能够无限循环的脚本,现在可以使用 exit 表示退出 while 循环。在 while 无限循环的基础上进行修改:
exit 一旦执行,while 循环就会停止。脚本运行结果如下:
也就是说,在 shell 脚本中,只要碰到 exit 语句,后续的程序就不再执行,而是直接退出脚本。
exit 语句的语法如下:
exit[返回值]
在使用 exit 定义了返回值之后,可以通过查询“$?”这个变量来查看返回值。如果 exit 之后没有定义返回值,那么脚本执行之后的返回值是执行 exit 语句之前最后执行的一条命令的返回值。exit 返回值为 0~255,通常默认正常退出后的返回值为 0,其余数字可以通过自定义来表示不同情况的异常退出。我们可以在 case 语句、for 循环、while 循环等语句中使用 exit 表示退出脚本。
例如,我们在 while 循环中写过一个能够无限循环的脚本,现在可以使用 exit 表示退出 while 循环。在 while 无限循环的基础上进行修改:
[root@localhost ~]# cat /root/while.sh #!/bin/bash while true do cat << EOF 1. SELinux ON: 2. SELinux OFF : 3. IP DHCP: 4. IP Static : 5. EXIT # 在输出提示信息中加入退出选项 EOF read -p "请输入您的选择(1-5):" slct case "$slct" in 1) echo "SELinux ON..." ;; 2) echo "SELinux OFF..." ;; 3) echo "DHCP IP..." ;; 4) echo "Static IP..." ;; 5) echo "Exiting..." exit 50 # case语句中加入退出选项,输出退出提示并执行exit,指定exit退出返回值为50 ;; *) echo "Error, Please input 1|2|3|4|5" ;; esac done
exit 一旦执行,while 循环就会停止。脚本运行结果如下:
[root@localhost ~]# /root/while.sh 1. SELinux ON: 2. SELinux OFF : 3. IP DHCP : 4. IP Static : 5. EXIT 请输入您的选择(1-5):5 # ←使用键盘输入5 Exiting... # ←输出退出提示 [root@localhost ~]# # ←退出脚本 [root@localhost ~]# echo $? 50 # ←退出返回值为50