zoukankan      html  css  js  c++  java
  • shell编程while

    脚本编程:
        顺序结构
        选择结构
            if
            case
        循环结构
            for
            while
            until
            
    while循环:适用于循环次数未知的场景,要有退出条件
    语法:
        while CONDITION; do
          statement
          ...
        done
        
    计算100以内所有正整数的和

    #!/bin/bash
    declare -i I=1
    declare -i SUM=0

    while [ $I -le 100 ]; do
      let SUM+=$I
      let I++
    done

    echo $SUM

    练习:转换用户输入的字符为大写,除了quit:
    #!/bin/bash
    #
    read -p "Input something: " STRING

    while [ $STRING != 'quit' ]; do
      echo $STRING | tr 'a-z' 'A-Z'
      read -p "Input something: " STRING
    done

    练习:每隔5秒查看hadoop用户是否登录,如果登录,显示其登录并退出;否则,显示当前时间,并说明hadoop尚未登录:
    #!/bin/bash
    #
    who | grep "hadoop" &> /dev/null
    RETVAL=$?

    while [ $RETVAL -ne 0 ]; do
      echo "`date`, hadoop is not log."
      sleep 5
      who | grep "hadoop" &> /dev/null
      RETVAL=$?
    done

    echo "hadoop is logged in."

    写一个脚本:
    1) 显示一个菜单给用户:
    d|D) show disk usages.
    m|M) show memory usages.
    s|S) show swap usages.
    *) quit.
    2) 当用户给定选项后显示相应的内容;
       
    扩展:
        当用户选择完成,显示相应信息后,不退出;而让用户再一次选择,再次显示相应内容;除了用户使用quit;
    #!/bin/bash
    #
    cat << EOF
    d|D) show disk usages.
    m|M) show memory usages.
    s|S) show swap usages.
    *) quit.
    EOF

    read -p "Your choice: " CHOICE
    while [ $CHOICE != 'quit' ];do
      case $CHOICE in
      d|D)
        echo "Disk usage: "
        df -Ph ;;
      m|M)
        echo "Memory usage: "
        free -m | grep "Mem" ;;
      s|S)
        echo "Swap usage: "
        free -m | grep "Swap" ;;
      *)
        echo "Unknown.." ;;
      esac

    read -p "Again, your choice: " CHOICE
    done

    练习:写一个脚本
    从键盘让用户输入几个文件,脚本能够将此几个文件归档压缩成一个文件;
    read:
        -p “PROMPT": 给出提示

  • 相关阅读:
    RabbitMQ的ACK机制
    Flex保存文件 FileReference.save(data,filename)
    Flex Builder cannot locate the required debugger version of Flash Player
    Flex每日小记
    IT民工
    R读取文件内容到Frame
    ArcGIS9.2 9.3
    超时空的心情
    ArcMap中设置.mxd相对路径
    MyEclipse Flex Tomcat BlazeDS
  • 原文地址:https://www.cnblogs.com/jjzd/p/5792177.html
Copyright © 2011-2022 走看看