从零开始学习Linux(四十九):Shell编程之流程控制for循环

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

脚本执行结果,如下图所示:

从零开始学习Linux(四十九):Shell编程之流程控制for循环_第1张图片
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目录下面所有的文件,如下所示:

从零开始学习Linux(四十九):Shell编程之流程控制for循环_第2张图片

执行fordemo2.sh脚本后,再次查看目录下面所有的文件,如下所示:

从零开始学习Linux(四十九):Shell编程之流程控制for循环_第3张图片
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赋予执行权限后执行,查看输出结果。如下图所示:

你可能感兴趣的:(从零开始学习Linux(四十九):Shell编程之流程控制for循环)