• Shell exit流程控制语句及用法

    系统中是有 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

更多...

加载中...