13-if语句与shell运算-《shell脚本》

admin 2025-11-06 14:41:00 系统网络 来源:ZONE.CI 全球网 0 阅读模式
  • 一、与文件存在与否的判断
  • 二、课后练习

    if是一个条件判断语句,判断的前提是得有个条件。so,条件就显得格外重要了,if中可以有哪些条件呢?接下来我们就来聊一聊if条件的问题。我们在之前的课程中学习了shell的运算,有比较运算、逻辑运算、文件运算等,这些运算可以植入到if条件中吗?答案是肯定的,接下来我就给大家演示一下如何在if条件中植入shell运算条件

    一、与文件存在与否的判断

    1. -e 是否存在 不管是文件还是目录,只要存在,条件就成立
    2. -f 是否为普通文件
    3. -d 是否为目录
    4. -S socket
    5. -p pipe
    6. -c character
    7. -b block
    8. -L 软link
    • 文件权限相关的判断

      1. -r 当前用户对其是否可读
      2. -w 当前用户对其是否可写
      3. -x 当前用户对其是否可执行
      4. -u 是否有suid
      5. -g 是否sgid
      6. -k 是否有t位
    • 两个文件的比较判断

      1. file1 -nt file2 比较file1是否比file2新
      2. file1 -ot file2 比较file1是否比file2旧
      3. file1 -ef file2 比较是否为同一个文件,或者用于判断硬连接,是否指向同一个inode
    • 整数之间的判断

      1. -eq 相等
      2. -ne 不等
      3. -gt 大于
      4. -lt 小于
      5. -ge 大于等于
      6. -le 小于等于
      7. 浮点比较运算
      8. 比较两个浮点数字的大小
      9. 给脚本两个浮点数字 返回他两的关系
      10. #思路
      11. 1、获得两个浮点数字
      12. 2、处理为整形
      13. 3、比较
      14. 4、输出
    • 字符串之间的判断

      1. -z 是否为空字符串 字符串长度为0,就成立
      2. -n 是否为非空字符串 只要字符串非空,就是成立
      3. string1 == string2 是否相等
      4. string1 != string2 不等
      5. #用户登录验证
      6. [root@zutuanxue ~]# cat if-6.sh
      7. #!/bin/bash
      8. #1、交互式输入用户名 密码
      9. read -p "user: " myuser
      10. if [ -z "$myuser" ];then
      11. echo "用户名为空"
      12. exit 1
      13. fi
      14. #从外往里写
      15. read -p "password: " mypw
      16. if [ -n "$mypw" ];then
      17. #2、判断是否正确
      18. #2.1 判断用户名
      19. if [ $myuser == "root" ];then
      20. #2.2判断密码
      21. if [ $mypw == "abc-123" ];then
      22. echo "welcome root"
      23. else
      24. echo "密码错误"
      25. exit 1
      26. fi
      27. else
      28. echo "用户名错误"
      29. exit 1
      30. fi
      31. else
      32. echo "密码不能为空"
      33. exit 1
      34. fi
    • 多重条件判断

      1. 逻辑判断符号:
      2. && (and 逻辑与) 两个条件同时满足,整个大条件为真
      3. || (or 逻辑或) 两个条件满足任意一个,整个大条件为真
      4. ! 非运算
      5. #用户登录验证
      6. [root@zutuanxue ~]# cat if-6.sh
      7. #!/bin/bash
      8. #1、交互式输入用户名 密码
      9. read -p "user: " myuser
      10. if [ -z "$myuser" ];then
      11. echo "用户名为空"
      12. exit 1
      13. fi
      14. #从外往里写
      15. read -p "password: " mypw
      16. if [ -n "$mypw" ];then
      17. #2、判断是否正确
      18. #2.1 判断用户名
      19. #if [ $myuser == "root" ];then
      20. #2.2判断密码
      21. # if [ $mypw == "abc-123" ];then
      22. # echo "welcome root"
      23. #else
      24. # echo "密码错误"
      25. # exit 1
      26. # fi
      27. #
      28. #else
      29. # echo "用户名错误"
      30. # exit 1
      31. #fi
      32. if [ $myuser == 'root' ] && [ $mypw == 'abc-123' ];then
      33. echo "welcome root"
      34. else
      35. echo "用户名或密码错误"
      36. exit 1
      37. fi
      38. else
      39. echo "密码不能为空"
      40. exit 1
      41. fi

      二、课后练习

      1. 练习题1、判断/tmp/tyschool目录,如果没有则创建它
      2. 练习题2、判断是否有/usr/bin/wget命令,没有则安装他
      3. 练习题3、判断当前用户是否为管理员,UID为0或者为root都算管理员
      4. 练习题4、打印物理内存使用率
    01-shell脚本介绍-《shell脚本》 系统网络

    01-shell脚本介绍-《shell脚本》

    一、shell脚本是什么二、为什么要学shell,而不是其他计算机语言三、学习这门课程的优势四、学了能干什么五、学习什么内容六、学习的技巧七、成长路径八、学习环
    评论:0   参与:  24