shell编程第四天(判断)

傷城~ 2022-11-04 00:58 253阅读 0赞

文章目录

  • shell编程第四天(判断)
      • shell条件测试
          • 数值比较
          • 文件测试
          • 字符串比较
          • and和or
      • 流程控制

shell编程第四天(判断)

无论是什么编程语言都离不开条件判断,shell编程也是一样的,也就是流程控制。

shell条件测试

数值比较

格式:[数值1 操作符 数值2],也就是大于,小于,大于等于,小于等于
数学中通常使用的是> < 来进行表示,但是在shell中,已经将这些符号赋予了特殊的含义:输出重定向和输入重定向
在shell中使用的以下的字符进行表示:

  1. -gt大于
  2. -lt小于
  3. -eq等于
  4. -ne不等于
  5. -ge大于等于
  6. -le小于等于

编写一个脚本测试用户输入的密码长度,是否满足长度的需求

变量的长度用${#变量名称} 来进行表示

  1. pass=123;echo ${ #pass}

测试的语法:

test 条件表达式
[条件表达式]
[[条件表达式]]

  1. #!/bin/bash
  2. read -p "请输入您的密码:" password
  3. test ${ #password} -ge 7;echo $? $> /dev/null

保存退出,执行文件

文件测试
  • 格式

    [操作符 文件或者是目录]

  • 操作符
    详情操作符访问这里

  • 请用户输入备份的路径
    如果存在提示已经存在可以备份,如果不存在提示目录不存在请创建目录

    vim path.sh

    !/bin/bash

    read -p “请输入您的需要备份的目录:” dir1
    if test -d $dir1
    then
    echo “$dir1存在,可以备份”
    else
    echo “$dir1不存在,无法备份”
    touch /“$dir1”
    echo “$dir1已经创建了”
    fi

保存退出

字符串比较
  • 格式

    [“字符串”操作符”字符串”]

  • 操作符

=等于
!=不等于(!)
-z判断字符长度是为0
-n判断字符长度不是为0

  1. vi select.sh
  2. #!/bin/bash
  3. read -p "您确定要升级这件装备吗?[yes/no]" select
  4. if [ "$select" = "yes" ]
  5. then
  6. echo "装备升级开始"
  7. else
  8. echo "欢迎下次光临"
  9. fi
and和or
  • 当条件测试比较复杂时,需要多个条件同时成立,就需要混合条件测试了,这就需要用到and和or

&& 逻辑中的AND的意思-a,两个条件同时成立为真
|| 逻辑中or的意思-o,两个条件有一个成立为真

  • 练习
    要求用户输入密码,长度大于等于7位,包含字母的大写,包含字母的小写,包含符号中的“@*¥”等符号

    vim pass.sh

    !/bin/bash

    read -p “请您输入密码:” pass
    if [ ${ #pass} -gt 7 ] && [[ ${pass} =~ [a-z] ]] && [[ ${pass} =~ [A-Z] ]] && [[ ${pass} =~ @%^* ]]
    then
    echo “您的密码足够复杂”
    else
    echo “您的密码太简单了”
    fi

保存退出执行文件

流程控制

流程控制需要认识的是if then else fi

  1. if 如果 条件成立
  2. then 那么 完成指令1..... 条件成立
  3. else 否则 完成指令2..... 条件不成立
  4. fi 结束
  5. #!/bin/bash
  6. read -p "请输入您的密码:" ps
  7. if [ ${ #ps} -lt 7 ]
  8. then
  9. echo "您的密码太短了"
  10. else
  11. echo "您的密码足够长"
  12. fi

发表评论

表情:
评论列表 (有 0 条评论,253人围观)

还没有评论,来说两句吧...

相关阅读

    相关

    一Selenium请求库 1.什么是selenium? selenium是一一个自 动测试工具,它可以帮我通过代码去实现驱动浏览器自动执行相应的操作。所以我们也可以用它