1、for循环命令格式
1.1、格式一
for 变量 in 值1 值2 值3
do
程序
done
这种方法看起来好像很笨,因为需要把要循环的值写入到for语句中。
此种方法不仅只支持明确的值,当我们不确定循环次数的时候,也可以使用此种方式。只要是要循环遍历的值由空格、回车、tab键隔开的都可以算在内,所以使用这种格式for可以和cat,ls等命令结合使用。
1.1.1、打印输出1 2 3 4 5
创建shell脚本fordemo1.sh,输入内容如下:
#!/bin/bash
# 打印输出1 2 3 4 5
for num in 1 2 3 4 5
do
echo $num
done
给脚本fordemo1.sh赋予执行权限,执行命令:
chmod 755 fordemo1.sh
脚本执行结果,如下图所示:
1.1.2、遍历某目录下面的所有的shell脚本并且将其压缩
创建shell脚本fordemo2.sh,输入内容如下:
#!/bin/bash
#遍历某目录下面的所有的shell脚本并且将其压缩
cd /opt/shell
#获取到所有的shell脚本文件,并且将结果输出到lssh.log文件中
ls *.sh > lssh.log
for file in $(cat lssh.log)
do
tar -zcvf $file.tar.gz $file &>/dev/null
done
rm -rf /opt/shell/lssh/log
给脚本fordemo2.sh赋予执行权限,执行命令:
chmod 755 fordemo2.sh
命令执行前查看/opt/shell目录下面所有的文件,如下所示:
执行fordemo2.sh脚本后,再次查看目录下面所有的文件,如下所示:
1.2、格式二
for ((初始值;条件判断式;变量变化))
do
程序
done
这种情况适用于知道循环次数。
1.2.1、计算1到100和并输出
创建shell脚本文件cal1.sh,文件内容如下:
#!/bin/bash
#求1到100的和
sum=0
for (( i=1;i<=100;i=i+1 ))
do
sum=$(( $sum+$i ))
done
echo "求和结果:"$sum
给shell脚本cal1.sh赋予执行权限后执行,查看输出结果。如下图所示: