博客
关于我
shell编程之for循环
阅读量:576 次
发布时间:2019-03-11

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

for循环是一种运行前测试语句,也就是运行任何循环体之前先要判断循环条件是否成立,只有在条件成立的情况下才会运行循环体,否则将退出循环。

1.1 带列表的for循环
带列表的for循环用于执行一定次数的循环,其语法结构如下:

for VARIABLE in (list)do    commanddone

例如:

[root@node1 ~]# cat fruit.sh#!/bin/bashfor FRUIT in apple orange banana peardo    echo "$FRUIT is John's favorite"doneecho "No more favorite"[root@node1 ~]# sh fruit.shapple is John's favoriteorange is John's favoritebanana is John's favoritepear is John's favoriteNo more favorite

也可以将列表的内容换成变量,循环的时候读取变量的值;或者in后面的内容可以是任意命令的标准输出。例如:

[root@node1 ~]# cat sum.sh #!/bin/bashsum=0for VAR in `seq 1 100`do    let "sum+=VAR"doneecho "Ttal: $sum"[root@node1 ~]# sh sum.sh Ttal: 5050

1.2 不带列表的for循环

不带列表的for循环如下所示:

for VARIABLE in (list)do    commanddone

使用不带列表的for循环时,需要运行脚本时通过参数的方式给变量传值。例如:

[root@node1 ~]# cat sum.sh #!/bin/bashsum=0for VAR do    let "sum+=VAR"doneecho "Ttal: $sum"[root@node1 ~]# sh sum.sh 2 5 6Ttal: 13

1.3 类C的for循环

shell支持类C的for循环,语法结构如下:

for ((expression1;expression2;expression3))do    commanddone

expression1为初始化语句,用作变量的定义和初始化,可初始化多个变量,中间用逗号隔开;expression2为判断表达式;expression3修改变量的值,也可修改多个变量的值,中间用逗号隔开。

例如:

[root@node1 ~]# cat c_for.sh #!/bin/bashfor ((i=1,j=100;i<=10;i++,j--))do       echo "i=$i,j=$j"done[root@node1 ~]# sh c_for.sh i=1,j=100i=2,j=99i=3,j=98i=4,j=97i=5,j=96i=6,j=95i=7,j=94i=8,j=93i=9,j=92i=10,j=91

1.4 for的无限循环

无限循环又叫死循环,使用类C的for循环,只要保证expression2条件为真即可,会一直运行,直到按下Ctrl+C组合键

[root@node1 ~]# cat c_for1.sh #!/bin/bashfor ((i=0;i<1;i+=0))do       echo "i=$i"done

转载地址:http://bdtvz.baihongyu.com/

你可能感兴趣的文章
Node-RED中将CSV数据写入txt文件并从文件中读取解析数据
查看>>
Node-RED中建立TCP服务端和客户端
查看>>
Node-RED中建立Websocket客户端连接
查看>>
Node-RED中建立静态网页和动态网页内容
查看>>
Vue3+Element-ul学生管理系统(第二十二课)
查看>>
Node-RED中怎样让网站返回JSON数据
查看>>
Node-RED中根据HTML文件建立Web网站
查看>>
Node-RED中解析高德地图天气api的json数据显示天气仪表盘
查看>>
Node-RED中连接Mysql数据库并实现增删改查的操作
查看>>
Node-RED中通过node-red-ui-webcam节点实现访问摄像头并截取照片预览
查看>>
Node-RED中配置周期性执行、指定时间阶段执行、指定时间执行事件
查看>>
Node-RED安装图形化节点dashboard实现订阅mqtt主题并在仪表盘中显示温度
查看>>
Node-RED怎样导出导入流程为json文件
查看>>
Node-RED简介与Windows上安装、启动和运行示例
查看>>
Node-RED订阅MQTT主题并调试数据
查看>>
Node-RED通过npm安装的方式对应卸载
查看>>
node-request模块
查看>>
node-static 任意文件读取漏洞复现(CVE-2023-26111)
查看>>
Node.js 8 中的 util.promisify的详解
查看>>
node.js debug在webstrom工具
查看>>