Shell中的For循环

作者: 风筝flying | 来源:发表于2018-09-06 09:53 被阅读6次

    前言

    近期在处理一个临时数据需求时,由于会用到埋点表的近一年的分区,一次性全量查询会产生18W+的mapper数,效率慢不说,而且影响集群的性能,故而采用shell的循环方式,把需要使用到的分区值放到一个数组,然后遍历数组中的每一个值,将查询的结果保存至一张分区表。上一篇文章讲了数组的操作,本文介绍For循环的几种语法,仅供参考。

    数字型循环

    如下是几种实现方式的实例:

    #!/bin/bash
    #通过 awk
    awk 'BEGIN {for i=1;i<=5;i++) print i)'
    #通过seq构造数字序列
    for i in $(seq 1 5)
    do
    echo $(($i*2-1));
    done
    #传统方式1
    for(i=1;i<=5;i++);do
    {
    echo $(($i*6+5));
    }
    done
    #传统方式2
    for i in (1..5)
    do
    echo $(($i));
    done
    

    字符型循环

    如下是几种实例:

    #!/bin/bash
    #读取字符数组
    strArray="dota2 lol pubg csol"
    for i in $strArray;
    do
    echo $i is a game;
    done
    #读取shell的外部参数
    for i in $*;
    do
    echo $i is a parameter;
    done
    
    

    读取路径

    #读取文件列表
    for i in `ls *.sh`;
    do
    echo $i is a sh file;
    done
    

    相关文章

      网友评论

        本文标题:Shell中的For循环

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