• Linux--shel分支语句--05


    一、if条件语句的使用格式:

    1、单分支语句

    if [ 条件 ];then
      执行语句
    fi

    注意:[ 条件 ] :条件与中括号要用空格分割;下面的语句同理。

    2、双分支语句

    if [ 条件 ];then
      执行语句1
    else
      执行语句2
    fi

    3、多分支语句

    if [ 条件 ];then
      执行语句1
    elif;then
      执行语句2
    elif;then
      执行语句3
    else
      执行语句4
    fi

    退出码: exit

      在某些条件判断下,如果不满足该条件,我们必须手动退出程序,否则后面的代码无法执行;

      代码正确执行完成后,指定 exit 0 为正确退出码;

      代码执行错误时,指定 exit 0-255 之间任意一个数值表示错误退出。

    练习:

    1、给定一个文件,如果是普通文件,就显示出来,如果是目录文件,也显示出来,否则就显示“无法识别”

    #!/bin/bash
    #
    read -t 5 -p ("请输入一个文件:") filename # -t 等待时间5秒不输入自动退出
    if [ -n $filename ];then
        echo # 默认用来换行
        echo "eg. /etc/fstab"
        exit 8
    fi
    
    if [ -f $filename ]; then
        echo "$filename 是一个普通文件"
        exit 0
    elif [ -d $filename ];then
        echo "$filename 是一个目录文件"
        exit 0
    else
        echo "无法识别"
        exit 1
    fi

    2、判断当前系统上是否有用户的默认shell程序是否为bash程序,如果有,就显示有多少个这类用户,否则就显示没有这类用户;【并且显示出那些用户是bash】

    #!/bin/bash
    # 判断用户的默认shell程序类型
    
    declare -i sum=`grep "bin/bash$" /etc/passwd | wc -l`   #定义一个数值型变量sum
    
    if grep "/bin/bash$" /etc/passwd &> /dev/null ; then
      echo "存在 $sum 个用户,shell程序为/bin/bash"
      grep "/bin/bash$" /etc/passwd | cut -d: -f1
      exit 0
    else
      echo "没有这类用户"
      exit 1
    fi

    3、判断某个文件是否存在

    #!/bin/bash
    # 判断文件是否存在
    if [ $# -lt 1 ]; then
      echo "至少需要输入一个传参." 
      exit 1 
    fi
    
    if [ -e $1 ];then
      echo "存在"
    else
      echo "不存在"
    fi

    二、case语句

    1、case语句语法格式:

    case 变量 in
        PATTEN1)    # PATTERN支持文件统配符
            代码块1
        ;;
         PATTEN2)
            代码块2     
        ;;
         *)
            默认执行语句
        ;;
    esac            

    2、练习

    read -p 'Input a number:' Num
    case $Num in
        1)  echo 'You select 1'
        ;;
        2)  echo 'You select 2'
        ;;
        3)  echo 'You select 3'
        ;;
        4|5)  echo 'You select 4 or 5'
        ;;
        *)  echo 'default'
        ;;
    esac
  • 相关阅读:
    窗口和消息
    输出文字
    《windows程序设计》第一章,建议想学API的每天看一章
    hdu 1008为何不对?求大神指导!
    课程设计(物体类),图片可能没有加载出来,自己运行一下就行了
    二叉树前序、中序、后序遍历相互求法
    哈希表工作原理
    c++中关于static关键字的问题
    Halcon学习笔记之缺陷检测(二)
    Halcon学习笔记之缺陷检测(一)
  • 原文地址:https://www.cnblogs.com/gxnihao/p/11353608.html
Copyright © 2020-2023  润新知