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

猜你喜欢

转载自www.cnblogs.com/zwl123456/p/11442038.html