AI智能
改变未来

快速了解shell编程语言,及shell脚本编写使用(2)


shell脚本编程(2)——if选择语句、循环结构、case语句

这一章主要写的是shell的if选择语句、循环语句、case语句以及一些简单的例子,能够快速了解shell中的一些结构的使用(* ^ – ^ *)

文章目录

  • shell脚本编程(2)——if选择语句、循环结构、case语句
  • 一、 shell中的if选择语句
  • 1、单分支结构
  • 2、双分支结构
  • 3、多分支结构
  • 二、 shell中的循环
    • 1、for循环
    • 2、while循环
  • 三、case语句
    • 1、case语法结构及特点

    一、 shell中的if选择语句

    1、单分支结构

    • 当“条件成立”时执行命令序列 ,否则不执行操作

      if单分支案例: 检测/media/cdrom目录,若不存在则创建
    [root@svr5 ~]\\# vim mountdir.sh#!/bin/bashdir=\"/media/cdrom/\"if [ ! -d $dir ]thenmkdir -p $dirfi[root@svr5 ~]\\# chmod +x mountdir.sh   //添加可执行权限

    2、双分支结构

    • 当“条件成立”时执行命令序列1,否则执行命令序列2

      if分支结构案例: 检测并判断指定的主机是否可ping通,
      ping通显示\”Host $1 is up.\”
      不通显示\”Host $1 is down.\”
    [root@svr5 ~]\\# vim pinghost.sh#!/bin/bashping -c 3 -i 0.2 -W 1 $1 &> /dev/nullif [ $? -eq 0 ] ; thenecho \"Host $1 is up.\"elseecho \"Host $1 is down.\"fi[root@svr5 ~]\\# chmod +x pinghost.sh
    3、多分支结构
    • 相当于if语句嵌套,针对多个条件分别执行不同的操作

      if多分支结构案例: 从键盘输入一个论坛积分,判断论坛用户等级
      大于等于90 神功绝世
      大于等于80,小于90 登峰造极
      大于等于70,小于80 炉火纯青
      大于等于60,小于70 略有小成
      小于60 初学乍练
    [root@svr5 ~]\\# vim grade.sh#!/bin/bashread -p \"请输入积分(0-100):\" JFif [ $JF -ge 90 ] ; thenecho \"$JF 分,神功绝世\"elif [ $JF -ge 80 ] ; thenecho \"$JF 分,登峰造极\"elif [ $JF -ge 70 ] ; thenecho \"$JF 分,炉火纯青\"elif [ $JF -ge 60 ] ; thenecho \"$JF 分,略有小成\"elseecho \"$JF 分,初学乍练\"fi[root@svr5 ~]\\# chmod +x grade.sh

    二、 shell中的循环

    1、for循环
    • 根据变量的不通取值,重复执行命令行序列(有次数限制)

      for循环案例: 通过循环批量显示10个数字
    [root@svr5 ~]\\# vim for03.sh#!/bin/bashfor i in {1..10}doecho \"$i\"done[root@svr5 ~]\\# chmod +x for03.sh    //给文件加执行权限[root@svr5 ~]\\# ./for03.sh           //在当前位置执行文件
    2、while循环
    • 可以实现无限循环,或者有条件的终止循环
    • 只要测试结果正确,循环任务就一直执行
    • while:加冒号代表所有都正确,一直执行完(会出现死循环)

      while循环案例: 有效循环脚本
    [root@svr5 ~]\\# vim while02.sh#!/bin/bashi=1while [ $i -le 5 ]doecho \"$i\"let i++done[root@svr5 ~]\\# chmod +x while02.sh[root@svr5 ~]\\# ./while02.sh

    三、case语句

    1、case语法结构及特点
    • 检查变量的实际取值
    • 功能类似if,不如if强大,但是语句比if精简
    • 如果与预设的值相匹配,则执行对应的操作

      case语句案例:编写一个Nginx启动脚本、脚本通过位置变量$1读取用户的操作指令,判断是start、stop、restart还是status。
    [root@svr5 ~]\\# vim case1.shcase $1 inkai)/usr/local/nginx/sbin/nginx ;;guan)/usr/local/nginx/sbin/nginx -s stop ;;cq)/usr/local/nginx/sbin/nginx -s stop/usr/local/nginx/sbin/nginx ;;cha)netstat -ntulp | grep -q :80[ $? -eq 0 ] && echo \"nginx服务已经开启\" || echo \"nginx服务未开启\" ;;*)echo \"kai|guan|cq|cha\"esac[root@svr5 ~]\\# chmod +x case1.sh

    结束啦
    这篇的基本介绍就先写到这里,后面会继续更新shell脚本的一些常用的用法以及后面企业中一些实用的shell脚本的运用,感谢你们的浏览,也希望对你们有所帮助,你的点赞是我努力的动力,谢谢你们!

    赞(0) 打赏
    未经允许不得转载:爱站程序员基地 » 快速了解shell编程语言,及shell脚本编写使用(2)