• bash shell while语法


    在编写脚本时,一定要注意空格

    基本语法:

    while [ condition ]
    do
       command1
       command2
       command3
    done
    condition为true时命令1到命令3将会一直执行,知道条件为false ,例如:
    
    #!/bin/bash
    x=1
    while [ $x -le 5 ]
    do
      echo "Welcome $x times"
      x=$(( $x + 1 ))
    done

    Here is a sample shell code to calculate factorial using while loop:

    #!/bin/bash
    counter=$1
    factorial=1
    while [ $counter -gt 0 ]
    do
       factorial=$(( $factorial * $counter ))
       counter=$(( $counter - 1 ))
    done
    echo $factorial

    To run just type:
    $ chmod +x script.sh
    $ ./script.sh 5

    Output:

    120

    While loops are frequently used for reading data line by line from file:

    #!/bin/bash
    FILE=$1
    # read $FILE using the file descriptors
    exec 3<&0
    exec 0<$FILE
    while read line
    do
    	# use $line variable to process line
    	echo $line
    done
    exec 0<&3

    You can easily evaluate the options passed on the command line for a script using while loop:

    ......
    ..
    while getopts ae:f:hd:s:qx: option
    do
            case "${option}"
            in
                    a) ALARM="TRUE";;
                    e) ADMIN=${OPTARG};;
                    d) DOMAIN=${OPTARG};;
                    f) SERVERFILE=$OPTARG;;
                    s) WHOIS_SERVER=$OPTARG;;
                    q) QUIET="TRUE";;
                    x) WARNDAYS=$OPTARG;;
                    ?) usage
                        exit 1;;
            esac
    done
    .......
    ..

    How do I use while as infinite loops?

    Infinite for while can be created with empty expressions, such as:

    #!/bin/bash
    while :
    do
    	echo "infinite loops [ hit CTRL+C to stop]"
    done

    Conditional while loop exit with break statement

    You can do early exit with the break statement inside the whil loop. You can exit from within a WHILE using break. General break statement inside the while loop is as follows:

    while [ condition ]
    do
       statements1      #Executed as long as condition is true and/or, up to a disaster-condition if any.
       statements2
      if (disaster-condition)
      then
    	break       	   #Abandon the while lopp.
      fi
      statements3          #While good and, no disaster-condition.
    done

    In this example, the break statement will skip the while loop when user enters -1, otherwise it will keep adding two numbers:

    #!/bin/bash
     
    while :
    do
    	read -p "Enter two numnbers ( - 1 to quit ) : " a b
    	if [ $a -eq -1 ]
    	then
    		break
    	fi
    	ans=$(( a + b ))
    	echo $ans
    done

    Early continuation with the continue statement

    To resume the next iteration of the enclosing WHILE loop use the continue statement as follows:

    while [ condition ]
    do
      statements1      #Executed as long as condition is true and/or, up to a disaster-condition if any.
      statements2
      if (condition)
      then
    	continue   #Go to next iteration of I in the loop and skip statements3
      fi
      statements3
    done


    while [ condition ]
    do
       statements1      #Executed as long as condition is true and/or, up to a disaster-condition if any.
       statements2
      if (disaster-condition)
      then
    	break       	   #Abandon the while lopp.
      fi
      statements3          #While good and, no disaster-condition.
    done
  • 相关阅读:
    C# 装箱原型
    C# 反射浅谈(一)
    javascript介绍(二)
    javascript介绍(一)
    C#中 托管资源和非托管资源
    varchar && nvarchar 闲谈
    高内聚&&低耦合
    【android】移植IOS视图响应陀螺仪交互行为
    【android】如何实现猿题库题目的排版
    开心工作标准的硬件环境
  • 原文地址:https://www.cnblogs.com/liang123/p/6325152.html
Copyright © 2020-2023  润新知