zoukankan      html  css  js  c++  java
  • shell 脚本——第八节课 case、while、until

    for:
      for 变量 in 列表;do
        循环体
      done

      for((初始语句; 判断语句; 值变化语句)); do
        循环体
      done

    case:
      分支
      case 变量 in
      PAT1)
        执行语句
        ;;
      PAT2)
        执行语句
        ;;
      *)
        默认执行语句
        ;;
      esac

    while:
      循环
      格式:

      定义初始值
      while 条件判断 ; do
        循环体
        值变化语句
      done

      其他两种特殊的语句格式:
      for i in $(cat /etc/passwd &> /dev/null) 错误写法

      while read 变量;do
        循环体($变量)
      done << /path/filename

      就是任性 -- 要写死循环
      while true ; do
        循环体
      done

      break    跳出循环
      continue  跳出本次循环
      sleep    延长多长时间后,继续向下执行命令

    until :
      循环
      与 while 用法想用
      区别:只有 判断条件为 False 的时候,才会进入循环语句;
      。。

    if:
      if 条件判断 ;then
        执行语句
      fi

      if 条件判断 ;then
        执行语句1
      else
        执行语句2
      fi

      if 条件判断; then
        执行语句1
      elif 条件判断 ; then
        执行语句2
      elif 条件判断 ; then
        执行语句3
      else
        执行语句4
      fi

    ---------------------------------------------------------------------------

    回顾:
      1、sed
        行编辑
        sed [option]... {sed固定的语法格式} file ...
        option : -i -n -r -e -f -l
        固定语法格式:
          address地址定界
            1 第一行
            1,10 第一行到第十行
            5,$ 指定行尾
              【vim . 代表光标所在当前行 : ":.,$s/^/#/"】
            1~3 1,4,7,11... 指定步长
            /pattern1/,/pattern2/
              从模式1匹配到的行,到模式2匹配到的行
            数字,+N
              【vim ":.,+3s/^#//"】
            /pattern1/,+N
          sed的常见子命令
            p 一直与-n一起使用
            w 指定保存到新的文件
            c 替换后面指定的内容
            i 在匹配行的上一行去添加指定内容
              sed "/for/i abc" 99xfb.sh
            a 在匹配行的下一行添加指定内容
              sed "/for/a abc" 99xfb.sh
            d 删除
              sed "/for/d" 99xfb.sh
            s 替换 -- 格式:s/pattern/字符串内容/ 默认:sed只替换每行中匹配的第一内容
            g -- 全部替换
              1 2 3 4
            & -- 在 字符串 内容中应用 pattern 匹配到的内容

      2、常见的逻辑关系语句
        掌握 if case while for until
        判断:1、test [] [[ && || ]] 2、指定命令( `命令` $(命令) )    需求:写一个脚本,使用chkconfig 命令,循环执行,关闭所有在5等级上的服务;

          chkconfig --level 5 [name] off
          [name]的遍历

    for i in `chkconfig --list | awk '{print $1}'`;do
       if chkconfig --list $i | grep "5:off" &> /dev/null ; then
         echo "$i 这个服务已经关闭"
      else
        chkconfig --level 5 $i off
        echo "关闭了 $i 这个服务"
      fi
     done

    练习:
      写一个脚本,完成如下任务
      1、显示一个如下的菜单
        Cpu)显示cpu信息
          cat /proc/cpuinfo
        Mem)显示内存信息
          free -m
        Disk)显示磁盘信息
          fdisk -l
        Quit)退出
          quit
      cat

      2、提示用户选项
        read -p "xxx"
      3、那些是用户选项的内容
        while

      if语句的写法:
      case语句的写法:

      read

      cpu
        cat /proc/cpuinfo
      mem
        free -m
      disk
        fdisk -l
      quit
        echo ""
        exit 0

  • 相关阅读:
    IE 中的 button type默认值问题
    linux中的&&和&,|和||
    scp 上传 下载 文件
    git 撤销,放弃本地修改
    git branch 新建,推送与删除
    git tags 管理
    CentOS7下Firewall常用命令
    git 忽略文件,不提交文件 清空缓存
    mysql 常用命令
    优秀的测试人员简历是什么样子的?
  • 原文地址:https://www.cnblogs.com/zwl123456/p/11442038.html
Copyright © 2011-2022 走看看