博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux Shell编程 循环语法
阅读量:6098 次
发布时间:2019-06-20

本文共 2201 字,大约阅读时间需要 7 分钟。

for循环

for 循环是固定循环,也就是在循环时已经知道需要进行几次循环。有时也把 for 循环称为计数循环。

语法:

for 变量 in 值1 值2 值3…do程序done

在这种语法中,for 循环的次数取决于 in 后面值的个数(以空格分隔),有几个值就循环几次,并且每次循环都把值赋予变量。也就是说,假设 in 后面有三个值,for 会循环三次,第一次循环会把值 1 赋予变量,第二次循环会把值 2 赋予变量,以此类推。

示例:打印时间。

[root@localhost ~]# vi sh/for.sh#!/bin/bash 打印时间for time in morning noon afternoon eveningdoecho "This time is $time!"done

in 值后面有 4 个字符串,所以这个 for 会循环 4 次。每次循环会依次把字符串赋予变量 time,所以这个脚本会循环 4 次,并依次输出"morning noon afternoon evening"这 4 个字符串。 

for ((初始值;循环控制条件;变量变化))do程序done
  • 初始值:在循环开始时,需要给某个变量赋予初始值,如 i=1。
  • 循环控制条件:用于指定变量循环的次数,如 i<=100,则只要 i 的值小于等于 100,循环就会继续。
  • 变量变化:每次循环之后,变量该如何变化,如 i=i+1,代表每次循环之后,变量的值都加 1。

示例:从 1 加到 100 

#!/bin/bash#从 1 加到100s=0for(( i=1;i<=100;i=i+1))#定义循环100次dos=$(($s+$i))#每次循环给变量s赋值doneecho "The sum of 1+2+..+100 is : $s"#输出从1加到100的和

用函数实现从 1 加到 mun的和:

[root@localhost ~]# vi sh/function.sh#!/bin/bash#接收用户输入的数字,然后从1加到这个数字function sum () {#定义函数sum    s=0    for (( i=0;i<=$1;i=i+1 ))    #循环直到i大于$1为止。$1是函数sum的第一个参数    #在函数中也可以使用位置参数变量,不过这里的$1指的是函数的第一个参数        do            s=$(( $i+$s ))        done    echo "The sum of 1+2+3...+$1 is : $s" #输出从1加到$1的和}read -p "Please input a number: " -t 30 num #接收用户输入的数字,并把值赋予变量numy=$(echo $num 丨 sed 's/[0-9]//g') #把变量num的值替换为空,并赋予变量yif [ -z "$y"]#判断变量y是否为空,以确定变量num中是否为数字then    sum $num    #调用sum函数,并把变量num的值作为第一个参数传递给sum函数else    echo "Error!! Please input a number!"    #如果变量rmm的值不是数字,则输出报错信息fi

函数的位置参数变量:$0 代表函数名,$1 代表函数的第 1 参数,$2 代表函数的第 2 个参数,以此类推。

while循环

while 循环和 unti 循环都是条件循环,主要是指循环可以一直进行,直到用户设定的条件达成为止。
while [条件判断式]do程序done
示例:从 1 加到 100。
#!/bin/bash#从1加到100i=1s=0#给变量i和s赋值while [$i -le 100]#如果变量的值小于等于100,则执行循环dos=$(($s+$i))i=$(($i+1))doneecho "The sum is: $s"

对于 while 循环来讲,只要条件判断式成立,循环就会执行。所以,只要i的值小于等于 100,循环就会继续。每次循环给变量 s 加入变量 i 的值,再给变量加 1,直到变量 i 的值大于 100,循环才会停止。然后输出变量 s 的值,也就是从 1 加到 100 的和。

until循环

 unti 循环,和 while 循环相反,只要条件判断式不成立,则进行循环,并执行循环程序;一旦条件判断式成立,则中止循环。语法如下:
until [条件判断式]do程序done
示例:从1加到100。
[root@localhost ~]#vi sh/until.sh#!/bin/bash#从1加到100i=1s=0#给变量i和s赋值until [$i-gt 100]#循环,直到变量i的值大于100,就停止循环dos=$(($s+$i))i=$(($i+1))doneecho "The sum is: $s"

对于 until 循环来讲,只要条件判断式不成立,循环就会继续;一旦条件判断式成立,循环就会停止。所以我们判断变量i的值是否大于 100,一旦变量的值大于 100,循环就会停止。

 

转载于:https://www.cnblogs.com/lizhouwei/p/10048607.html

你可能感兴趣的文章
如何利用Redis分布式锁实现控制并发
查看>>
机械式通风系统原理
查看>>
使用Eclipse-Maven-git做Java开发(17)--maven项目初步
查看>>
嵌入式开发之C基础学习笔记01--基本原理
查看>>
树形下拉框
查看>>
mysql 5.7 rpm 安装
查看>>
[转] VMware vSphere esxi中的用户权限与角色
查看>>
linux zip解压缩中文乱码
查看>>
MyBatis学习总结(9)——使用MyBatis Generator自动创建代码
查看>>
Distributed Configuration Management Platform(分布式配置管理平台)
查看>>
Java Web学习总结(14)——JSP基础语法
查看>>
PHP常用函数大全
查看>>
历届Jolt图书震撼奖
查看>>
拖延症(下)
查看>>
ORACLE数据泵使用详解
查看>>
我的友情链接
查看>>
ora-01102问题的解决
查看>>
win10系统重置密码
查看>>
Linux中升级git到1.8.3版本方法
查看>>
Hack with python(一)
查看>>