美文网首页
08 - shell之if语句

08 - shell之if语句

作者: 舍是境界 | 来源:发表于2022-03-20 07:23 被阅读0次

    if单分支判断

    • 当"条件成立"时执行命令序列
    • 否则,不执行任何操作
    if 条件测试
      then 命令序列
    fi
    
    if 条件测试;then
      命令序列
    fi
    

    案例

    • 判断用户名与密码是否为空
    #!/bin/bash
    read -p "请输入用户名:" user
    read -s -p "请输入密码:" pass
    if [ ! -z "$user" ];then
      #useradd "$user"
      echo "添加user: $user"
    fi
    
    if [ ! -z $"pass" ];then
      #echo "$pass" | passwd --stdin "$user"
      echo "修改密码为:$pass"
    fi
    echo
    
     ./user_v1.sh 
    请输入用户名:cao
    请输入密码:添加user: cao
    修改密码为:11
    
    #!/bin/bash
      
    read -p "请输入用户名:" user
    read -s -p "请输入密码:" pass
    if [ ! -z "$user" ] && [ ! -z "$pass" ];then
      echo "add user: $user, password: $pass"
    fi
    echo
    
    ./user_v2.sh 
    请输入用户名:cao
    请输入密码:
    add user: cao, password: 111
    
    • 测试主机是否能ping通
    
    #!/bin/bash
    #-c(设置ping的次数),-i(设置ping的间隔描述),-W(设置超时时间)
    ping -c2 -i0.1 -W1 $1 &>/dev/null
    if [ $? -eq 0 ];then
      echo "$1 is up"
    else
      echo "$1 is down"
    fi
    
    ./ping.sh 192.168.0.155
    192.168.0.155 is up
    

    if多分支判断

    • if双分支判断语法
      • 相当于if语句嵌套
      • 针对多个条件分别执行不同的操作
    if 条件测试1;then
      命令序列1
    elif 条件判断2;then
      命令序列2
    ... ...
    else
      命令序列n
    fi
    
    • 案例
      • 猜数字
    #!/bin/bash
    #脚本自动生成10以内的随机数,根据用户的输入,输出判断结果
    clear
    num=$[RANDOM%10+1]
    read -p "请输入1~10之间的整数:" guess
    if [ $guess -eq $num  ];then
      echo "猜对了,你真棒,就是:$num"
    elif [ $guess -lt $num  ];then
      echo "Oops,猜小了。"
    else
      echo "Oops,猜大了。"
    fi
    
    ./guess_num.sh 
    请输入1~10之间的整数:5
    猜对了,你真棒,就是:5
    
    ./guess_num.sh 
    请输入1~10之间的整数:5
    Oops,猜大了。
    

    小结

    • 掌握基本if语法格式
    • 编写脚本练习if语句的具体应用案例
      • 判断用户输入的字符串是否为空
      • 检测主机连通性
      • 猜数字

    相关文章

      网友评论

          本文标题:08 - shell之if语句

          本文链接:https://www.haomeiwen.com/subject/imdddrtx.html