bashfor循环怎么写( 二 )


#!/bin/bashecho "number of arguments is $#"echo "What you input is: "for argumentdoecho "$argument"done比上述代码少了[email protected]参数列表,$*参数字符串 。(4)类C风格的for循环 也被称为计次循环#!/bin/bashfor((integer = 1; integer <= 5; integer++))do echo "$integer"done for中第一个表达式(integer = 1)是循环变量赋初值的语句,第二个表达式(integer <= 5)决定是否进行循环的表达式,退出状态为非0时将退出for循环执行done后的命令(与C中的for循环条件是刚好相反的) 。
第三个表达式(integer++)用于改变循环变量的语句 。Sheel中不运行使用非整数类型的数作为循环变量,循环条件被忽略则默认的退出状态是0,for((;;))为死循环 。
类C的for循环计算1~100内所有的奇数之和 。#!/bin/bashsum=0for(( i = 1; i <= 100; i = i + 2 ))dolet "sum += i"doneecho "sum=$sum"2、while循环 也称为前测试循环语句,重复次数是利用一个条件来控制是否继续重复执行这个语句 。
为了避免死循环,必须保证循环体中包含循环出口条件即表达式存在退出状态为非0的情况 。(1)计数器控制的while循环#!/bin/bashsum=0i=1while(( i <= 100 ))dolet "sum+=i"let "i += 2" doneecho "sum=$sum" 指定了循环的次数500,初始化计数器值为1,不断测试循环条件i是否小于等于100 。
在循环条件中设置了计数器加2来计算1~100内所有的奇数之和 。(2)结束标记控制的while循环 设置一个特殊的数据值(结束标记)来结束while循环 。
#!/bin/bashecho "Please input the num(1-10) "read numwhile [[ "$num" != 4 ]]do if [ "$num" -lt 4 ]thenecho "Too small. Try again!"read numelif [ "$num" -gt 4 ]thenecho "To high. Try again" read numelseexit 0fidoneecho "Congratulation, you are right! " 例:通过结束标记控制实现阶乘的操作#!/bin/bashecho "Please input the num "read numfactorial=1while [ "$num" -gt 0 ]dolet "factorial= factorial*num"let "num--"doneecho "The factorial is $factorial"(3)标志控制的while循环使用用户输入的标志值来控制循环的结束(避免不知道循环结束标志的条件) 。#!/bin/bashecho "Please input the num "read numsum=0i=1signal=0while [[ "$signal" -ne 1 ]]doif [ "$i" -eq "$num" ]thenlet "signal=1"let "sum+=i"echo "1+2+ 。
+$num=$sum"elselet "sum=sum+i"let "i++"fidone 标志控制的while循环求1~n的累加和,循环变量值小于100执行else累加同时循环变量加1,直到循环变量值等于100将标志值设置为1,并输出 。标志控制的while循环与结束标记控制的while循环的区别是用户无法确定无法确定结束标志,只能程序运行后确定结束标志 。
两者也可以相互转化 。(4)命令行控制的while循环 使用命令行来指定输出参数和参数个数,通常与shift结合使用,shift命令使位置变量下移一位($2代替$1、$3代替$2,并使$#变量递减),当最后一个参数显示给用户,$#会等于0,$*也等于空 。
#!/bin/bashecho "number of arguments is $#"echo "What you input is: "while [[ "$*" != "" ]]doecho "$1"shiftdone循 。
【bashfor循环怎么写】

bashfor循环怎么写

文章插图