我是靠谱客的博主 风趣发带,最近开发中收集的这篇文章主要介绍Shell 编程判断(三)Sheel 条件测试,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

前言

Sheel 条件测试

        一、数值比较

        二、文件测试[操作符 文件或目录]

        三、字符串比较[“字符串”=“字符串”]

        四、and 和 or

        五、流程控制:if

        六、模式匹配:case


前言

        

Sheel 条件测试

        一、数值比较

        示例:

测试长度

[root@mycat ~]# pass=1231
[root@mycat ~]# echo ${#pass}
4

条件表达式

#!/bin/bash

read -p "Please enter password:" ps
if [ ${#ps} -lt 7 ]
                then
        echo "ni de mima tai duan!"
                else
        echo "ni de mi ma zhen chang!"
                fi

        二、文件测试[操作符 文件或目录]

 

#!/bin/bash

read -p "qing shu ru beifen mu lu: " dir1
                if [ -d $dir1 ]        //判断目录是否为真
        then echo "$dir1 存在可以备份"
        else echo "$dir1 不存在无法备份"
                fi                                           

        三、字符串比较[“字符串”=“字符串”]

        

 

 

#!/bin/bash
        read -p "你确定要升级这件装备吗?" select
                        if [ "$select" = "yes" ]
                then echo “装备升级开始???”
                else echo “感谢你,欢迎下次光临”
                        fi

        四、and 和 or

 

#!/bin/bash

read -p "请输入你的密码: " pass
                if [ ${#pass} -gt 7 ] && [[ ${pass} =~ [a-z] ]]
                                      && [[ ${pass}  =~ [A-Z] ]] 
                                      && [[ ${pass} =~ [@!_] ]]
                        then echo "你的PASSWORD太复杂!!"
                        else echo "你的密码太简单!!"
                fi
~                                                                                     

        五、流程控制:if

#!/bin/bash
read -p "input username:" name
                id $name &> /dev/null  /*输出信息扔入垃圾桶*/
                        if [ $? -ne 0 ]; then    /*如果没有这个用户*/
                                useradd $name
                        fi

 

#!/bin/bash  
##################if then
read -p "input username:" name 
      
           id $name &> /dev/null
                   if [ $? -ne 0 ];then
                         if id $name &> /dev/null;then
                                    echo "用户已存在"
                         else
                                    useradd $name
                                    echo "123456" | password --stdin $name &> /dev/null
                                    echo "$name create finshed,the password is 123456" 
                         fi
                   fi

 

#!/bin/bash
####       if then 
####elif

hour=`date +%H`

        if [ $hour -ge 6 -a $hour -le 10 ];then
                echo "This is morning"
        elif [ $hour -ge 11 -a $hour -le 13 ];then
                echo "This is noon"
        elif [ $hour -ge 14 -a $hour -le 18 ];then
                echo "This is afternoon"
                        else
                echo "This is night"
                         fi

#!/bin/bash
####if then  
#       else
#             if  then
#                 else
#            fi
#    fi
####################嵌套     

read -p "Input username:" name
        id $name &> /dev/null
                if [ $? -eq 0 ];then
                        echo "用户$name 存在"
                read -p "请输入你的密码:" pass

                        if [ ${#pass} -le 7 ];then
                        #       echo "$pass " | passwd --stdin $name
                                echo "密码太简单"
                        read -p "请重新输入你的密码:" pass
                        #               echo "$name 用户密码是$pass"  

                                if [ ${#pass} -ge 7 ];then
                                         # && [[ ${pass}  =~ [a-z] ]] && [[ ${pass}  =~ [A-Z] ]] && [[ ${pass}  =~ [@!_] ]];then
                                        echo "密码设置成功"
                                        echo "$name 你的密码是:$pass"
                                else
                                        echo "请使用大小写字母以及“@!_ “字符"
                                fi
                        else
                        echo  "你的密码太简单,请重新输入你的密码:" pass
                    

                        #       echo "$name 用户密码是$pass
                        #       echo "$pass " | passwd --stdin $name
         
                        fi
                else 
                        useradd $name 
                        echo "$name create finished"
                fi

~                                                                                                                                  
"ifthen.sh" 34L, 873C                                                                                            21,5-3

        六、模式匹配:case

#!/bin/bash
#name 
#time
# IF 写法
read -p "请输入删除用户:" user
read -p "are you sure?[y/n]:" action
        if [ "$action" = "y" -o "action" = "Y" ];then
        userdel -r $user
                echo "$user is delect!"
        else
       fi



#case 模式匹配
read "请输入你的用户名:" user
read "确认要删除吗?[yes/no]:" action
        case "action" in
                y|Y|YES|yes)
        userdel -r $user
                echo "$user is delected!";;*)
                echo "thank you";;
        esac
~                                                                                                                      
~                                                                                                                      
~                                                           

#!/bin/bash

web1=192.168.238.131
web2=192.168.238.129
#读取用户输入
read -p "请输入你要登录的IP:" num
        case $num in
                1)
        ssh volf@$web1
                ;;
                2)
        ssh volf@$web2
                ;;
                *)
                echo '12'
        esac
                                     

最后

以上就是风趣发带为你收集整理的Shell 编程判断(三)Sheel 条件测试的全部内容,希望文章能够帮你解决Shell 编程判断(三)Sheel 条件测试所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部