zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Shell exit流程控制语句及用法

流程控制shell 语句 用法 exit
2023-06-13 09:11:58 时间
系统中是有 exit 命令的,用于退出当前用户的登录状态。但是在 Shell 脚本中,exit 语句是用来退出当前脚本的。也就是说,在 Shell 脚本中,只要碰到了 exit 语句,后续的程序就不再执行,而直接退出脚本。exit 的语法如下:

exit [返回值]

如果在 exit 之后定义了返回值,那么这个脚本执行之后的返回值就是我们自己定义的返回值。可以通过查询 $? 这个变量来査看返回值。如果 exit 之后没有定义返回值,则脚本执行之后的返回值是执行 exit 语句之前最后执行的一条命令的返回值。写一个 exit 语句的例子:

[root@localhost ~]#vi sh/exit.sh
#!/bin/bash
#演示exit的作用
read -p Please input a number: -t 30 num
#接收用户的输入,并把输入赋予变量num
y=$(echo $num|sed s/[0-9]//g )
#如果变量num的值是数字,则把num的值替换为空;否则不替换
#把替换之后的值赋予变量y
[-n $y ] echo Error! Please input a number! exit 18
#判断变量y的值,如果不为空,则输出报错信息,退出脚本,退出返回值为18
echo The number is: $num
#如果没有退出脚本,则打印变量num中的数字

在这个脚本中,大家需要思考,如果输入的不是数字,那么 echo The number is:$num 这条命令是否会执行?当然不会,因为如果输入的不是数字,那么 [-n $y ] echo Error! Please input a number! exit 18 这条命令就会执行,exit 一旦执行,脚本就会中止。运行一下这个脚本:

[root@localhost ~]# chmod 755 sh/exit.sh
#给脚本赋予执行权限
[root@localhost ~]# sh/exit.sh
#执行脚本
Please input a number: test
#输入值不是数字,而是test
Error! Please input a number!
输出报错信息,而不会输出test
[root@localhost ~]# echo $?
#查看一下返回值
18
#返回值居然是18
[root@localhost ~]# sh/exit.sh
Please input a number: 10
#输入数字10
The number is: 10
#输出数字10

21926.html