Shell---循环结构
来源:互联网 发布:搜狐网络大厦it 编辑:程序博客网 时间:2024/05/22 03:30
Shell下的循环结构是类C的,同样也有for循环、while循环,此外,Shell也有until循环。
for循环
- for循环的基本语法
for variable in {list}do statement1 statement2 ...done
for循环的语法意思与C语言一样,即执行循环体的次数由list决定。list在这里是一个列表,可以是一系列的数字或字符串,元素之间用空格隔开
举例:依次打印出1~10。
1、列出list列表:
#! /bin/bash for i in 1 2 3 4 5 6 7 8 9 10 do echo "number is $i" done~
2、list列表可以表示为:{1..8}
#! /bin/bash for i in {1..8} do echo "number is $i" done
运行结果:
- 改变for循环增长步长
上述方式的for循环中,变量每次只能增长1,Shell允许用户自定义增长步长。
基本语法为:
for variable in {start..end..step}do statement1 statement2 ...done
start表示起始值,end表示终止值,step表示增长值。
举例:通过for循环输出100以内奇数的和:
#! /bin/bashsum=0for i in {1..100..2}do let "sum+=i";doneecho "result is : $sum"
- 不带列表的for循环
我们先来了解几个Shell中的位置参数:
$0:相当于main函数参数的argv[0]$1、$2...:称为位置参数,相当于main函数参数的argv[1],argv[2]....$#:相当于main函数的argc-1,这里的#不表示注释$@:表示参数列表"$1","$2",可以用在for循环in的后边$?:上一条命令的退出码$$:当前shell的进程号
举例:输出每命令行的每个参数
for val in $@do echo "$val"done
不带列表的循环实现为:
for valdo echo "$val"done
以上两种实现方式是等效的。
- 类C风格的for循环
for ((expression1;expression2;expression3))do statement1; statement2; ...done
举例:用该中方式打印1~10
for (( i=1;i<10;i++ ))do echo "number is $i"done
- for循环处理数组
基本语法:
for variable in ${array[*]}do statement1; statement2; ...done
举例:打印数组内容
array=(1 2 3 4 5 6 7 8) #这句表示定义一个数组for i in ${array[*]}do echo $idone
while循环
- while循环基本用法
基本语法:
while expressiondo statement1 statement2 ...done
while循环的语法与C语言的while循环仍是一样,只要条件满足就执行。
举例:使用while循环输出1~9的平方
i=1while [ "$i" -lt 10 ]do let "square=i*i" echo "$i*$i=$square" let "i+=1"done
输出结果:
until循环
- until循环的基本用法
基本语法:
until expressiondo statement1 statement2 ...done
until循环与C语言中的do…while循环类似,即反复执行循环体,直到某一条件成立则退出循环体。
举例:使用until循环执行上述while循环的例子,即打印1~9的平方。
i=1until [ "$i" -gt 10 ] #这就需要判断i大于10时退出循环do let "square=i*i" echo "$i*$i=$square" let "i+=1"done
使用break和continue控制循环
- 利用break控制循环
break的作用是立即跳出某个循环。
举例:输出5以内的乘法表
#! /bin/bashfor ((i=1;i<9;i++))do for ((j=1;j<=i;j++)) do let "result=$i*$j" printf "$i * $j = $result " done printf "\n"#当i变量的值为5时退出循环 if [ $i -eq 5 ] then break fidone
输出结果为:
- 利用continue控制循环
continue的作用是跳过当前循环体中该句后边的语句,重新从循环体开始执行。
举例:输出10以内的偶数
#打印10以内的偶数for val in {1..10}do if [[ "$val2" -eq 1 ]] then continue fi printf "$val "doneprintf "\n"
运行结果为:
阅读全文
0 0
- shell编程 循环结构
- 05 shell循环结构
- shell中的循环结构
- shell之循环结构
- Shell---循环结构
- Shell控制结构--循环控制
- 【shell】结构控制-循环语句
- shell之循环语句结构
- Linux Shell 笔记二(循环结构)
- shell实例(十一) ----循环,select结构
- Linux shell编程 10 ---- 循环结构
- Linux Shell笔记之结构循环
- 脚本乐园 shell编程循环结构
- shell编程三种循环结构
- 7.shell分支与循环结构
- shell中的3种for循环结构
- Shell脚本学习笔记-循环结构
- Shell编程---分支和循环结构
- 有符号整数与无符号整数
- 【C++】jsoncpp的安装与使用
- ios 异步线程 NSLock 小结
- Java 虚拟机
- 同一个标签定义多个样式优先级问题
- Shell---循环结构
- Leetcode 5. Longest Palindromic Substring
- iOS开发中方法延迟执行的几种方式
- android 智能代码提示 && 代码风格
- 删除TFS版本文件以及项目中的残留节点
- JSP
- mysql
- python函数学习一(跳出函数)
- Handler进程间通信