一、for循环
与其他编程语言类似,Shell支持for循环。
1. 格式1-字符型循环
for循环一般格式为:
for 变量 in 值1 值2 值3… do 程序 done |
当变量值在列表里,for循环即执行一次所有命令,使用变量名获取列表中的当前取值。命令可为任何有效的shell命令和语句。in列表可以包含替换、字符串和文件名。
in列表是可选的,如果不用它,for循环使用命令行的位置参数。
实例:
1)顺序输出当前列表中的数字:
test18.sh
#!/bin/bash for loop in 1 2 3 4 5 do echo "The value is: $loop" done |
输出结果:
The value is: 1 The value is: 2 The value is: 3 The value is: 4 The value is: 5 |
2)顺序输出字符串中的字符
test19.sh
#!/bin/bash for str in 'This is a string' do echo $str done |
输出结果:
This is a string |
3)打印/root目录下所有文件的名字
test20.sh
#!/bin/bash for file in $(ls /root) do echo $file done |
4)求1-100的和
test21.sh
#!/bin/bash s=0 #从1加到100 for(( i=1;i<=100;i=i+1)) #定义循环100次 do #每次循环给变量s赋值 s=$(($s+$i)) done #输出从1加到100的和 echo "The sum of 1+2+..+100 is : $s" |
2. 格式2-数字性循环
该格式的语法如下:
for ((初始值;循环控制条件;变量变化)) do 程序 done |
需要注意以下几点:
初始值:在循环开始时,需要给某个变量赋予初始值,如 i=1。
循环控制条件:用于指定变量循环的次数,如 i<=100,则只要 i 的值小于等于 100,循环就会继续。
变量变化:每次循环之后,变量该如何变化,如 i=i+1,代表每次循环之后,变量的值都加 1。
语法二和其他语言中的 for 循环类似,也就是事先决定循环次数的固定循环。
实例:
test22.sh
#!/bin/bash for ((i = 0; i <= 5; i++)) do echo "welcome $i times" done |