shell中for循环的用法
前言
shell的for循环可以帮助我们做一些重复性非常大的事情。工作中的真实案例很多。
如:docker批量保存和加载;k8s多余pod删除(几千个的那种…);多个文件夹中的某类文件删除;批量远程执行程序(灵活,易维护,直接修改变量配置文件,不需要一行行的修改了);
三级标题
#!/bin/bash
# 指定范围循环
for num in {1,2,3,4,6,4,3,2,5}
do
echo "$num"
done
# 循环打印文件内容
for txts in `cat hhh.txt`
do
echo "$txts"
done
# 获取命令输入,打印内容
for the_file_in_dir in `ls /dev/ | grep tty`
do
echo "$the_file_in_dir"
done
# 类似于编程语言的写法
for ((i=1;i<=5;i++))
do
echo "$i"
done
# 生成序列 起始位置 步长 终点
seq 2 2 10
seq 10 -2 1
# seq 配合 for循环
for i in `seq 1 2 10`
do
echo "$i"
done
# continue 跳过本次循环
for i in `seq 1 2 10`
do
if [ $i -eq 7 ]
then
continue
fi
echo $i
done
echo "###########"
# continue 2 可直接跳过本次内循环加外循环
for ((i=1;i<=3;i++))
do
for ((j=1;j<=6;j++))
do
if [ $j -eq 4 ]
then
continue 2
fi
echo "$j"
done
echo "#"
done
#
echo "%%%%%%%%%%%%%%%%%%%"
# break 打破循环执行直接结束
for ((i=1;i<=4;i++))
do
for ((j=1;j<=7;j++))
do
if [ $j -eq 3 ]
then
break
fi
echo "$j"
done
echo "#"
done
echo "**************"
# break 2 直接结束内循环加外循环。
for ((i=1;i<=2;i++))
do
for ((j=1;j<=4;j++))
do
if [ $j -eq 3 ]
then
break 2
fi
echo "$j"
done
echo "#"
done