Shell流程控制语句for
2023-09-11 14:17:21 时间
for语法格式:
for 变量 in 参数列表 do 命令 done 或者 for 变量 in 参数列表 ; do 命令 done
for语句流程控制图:
实例:
[root@youxi1 ~]# vim a.sh #!/bin/bash for var in a1 a2 b1 b2 do echo $var done [root@youxi1 ~]# sh a.sh a1 a2 b1 b2
参数列表可以更复杂些,部分特殊符号需要转义
[root@youxi1 ~]# vim b.sh #!/bin/bash for var in I\'m "hello world" "c1 c2 d1 d2" do echo $var done [root@youxi1 ~]# sh b.sh I'm hello world c1 c2 d1 d2
参数列表还可以从变量中读取,可以是多个变量
[root@youxi1 ~]# vim c.sh #!/bin/bash list="e1 e2 f1 f2" list2="hello world" for var in $list $list2 do echo $var done [root@youxi1 ~]# sh c.sh e1 e2 f1 f2 hello world
参数列表还可以从命令中取值
[root@youxi1 ~]# vim d.sh #!/bin/bash for var in `head -5 /etc/passwd` do echo $var done [root@youxi1 ~]# sh d.sh root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
(1).扩展1:自定义shell分隔符
(2).扩展2:C语言风格的for循环
C语言风格的for语法格式:
for ((变量赋值;条件判断;一次循环完成后执行的操作)) do 命令 done
注意:变量赋值可以放在for循环外部定义,一次循环完成后执行的操作可以放在循环里面。
实例如下:
[root@youxi1 ~]# vim a.sh #!/bin/bash i=0 for ((;i<=10;)) ; do echo "Num is $i" let i++ done [root@youxi1 ~]# sh a.sh Num is 0 Num is 1 Num is 2 Num is 3 Num is 4 Num is 5 Num is 6 Num is 7 Num is 8 Num is 9 Num is 10
另外变量赋值和一次循环完成后执行的操作,这两部分可以存在多个变量操作,实例如下:
[root@youxi1 ~]# vim a.sh #!/bin/bash for ((a=0,b=5;a<=10;a++,b--)) ; do echo "a-b="$[a-b] done [root@youxi1 ~]# sh a.sh a-b=-5 a-b=-3 a-b=-1 a-b=1 a-b=3 a-b=5 a-b=7 a-b=9 a-b=11 a-b=13 a-b=15
(3).扩展:seq命令
seq命令获取两个数以及之间的所有整数
[root@youxi1 ~]# vim a.sh #!/bin/bash for i in `seq -5 5` ; do echo $i done [root@youxi1 ~]# sh a.sh -5 -4 -3 -2 -1 0 1 2 3 4 5
相关文章
- [Android Pro] Android 打包流程
- Shell入门教程:流程控制(5)for 循环
- 【重点】Shell入门教程:流程控制(3)条件判断式的真假值
- 【重点】Shell入门教程:流程控制(2)条件判断的写法
- Caffe学习系列(16):caffe的整体流程
- [TI-Sitara]启动流程
- 小白学 Python(8):基础流程控制(下)
- 小白学 Python(7):基础流程控制(上)
- Swift语法专题六——流程控制
- js-ECMAScript-3:运算符和流程控制
- [Gin] 传统 for 循环中的语义通用化,在 golang 中使用分号 ; 替代 && 流程控制
- [Shell] 条件判断与流程控制:if, case, for, while, until
- Atitit QL查询语言总结 目录 1. QL = Query Language, 是查询语言的简称1 2. 具体实现1 2.1. Apcl 流程控制语言1 2.2. 脚本流程控制2 2.
- android 11 设置hdmi分辨率流程代码
- Java中的流程控制(分支结构和循环结构)
- Spark-submit执行流程,了解一下
- 22.第六章 Shell脚本编程基础入门 -- bash配置文件、流程控制(五)
- Go语言自学系列 | golang流程控制关键字break
- C#学习笔记(三)——流程控制
- Linux【实操篇】—— Shell 编程入门、变量、运算符、条件判断、流程控制
- Java基础(12)-流程控制之选择结构
- Shell 流程控制
- shell脚本if流程控制详解