Shell 循环 for

for用于实现循环。采用了类C语法。

for包括两类用法:1)指定次数的循环;2)遍历集合里的元素。

1 指定次数的循环

for ((初始化;循环条件;循环变量变化))
do
  循环体
done

for前后需要两个小括号;

循环体的前后是do、done,表示开始与结束。

示例

04for-01i.sh

for((i=0;i<10;i++))
do
  echo "第$((i+1))次循环""
done

img

2 遍历集合

语法

for 循环变量 in 集合
do
  循环体
done

遍历集合中的每个元素,依次执行循环体中的内容。

例1:遍历数组集合

arr1=("Linux" "HTML" "CSS" "JS")
for item in ${arr1[*]}
do
    echo $item
done

arr1是字符串数据;

${arr1[*]}表示获取数组所有内容。

img

例2:遍历文本每一行

准备文件file1.txt,内容如下:

line1
line2
line3
line4
line5
line6

遍历代码如下:

for item in `cat file1.txt`
do
    echo "处理行:${item}"
done

注:cat命令前后是反单号。

img

例3:遍历文件夹下的每个文件

for item in `ls .`
do
    echo "文件名:${item}"
done

注:ls命令前后是反单号。

img