美文网首页Linux Linux学习
从零开始学习Linux(四十九):Shell编程之流程控制for

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

作者: 通靈鹿小六 | 来源:发表于2021-01-10 00:15 被阅读0次

    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赋予执行权限后执行,查看输出结果。如下图所示:

    相关文章

      网友评论

        本文标题:从零开始学习Linux(四十九):Shell编程之流程控制for

        本文链接:https://www.haomeiwen.com/subject/tfiaoktx.html