shell 之 循环执行某操作

需求: 按月执行201904到202010的py脚本。

代码如下:

#!/bin/bash
i=201904 # 定义开始月份
while [ $i -le 202010 ] # 当i小于等于202010时执行循环语句
  do
    dateNo1=$(date +"%Y-%m-%d %H:%M:%S") # 获取当前时间(年月日时分秒)
    echo "开始执行($dateNo1): $i" # 打印当前时间(年月日时分秒)
    python tmp_sn_union_mem_20201125.py $i # 执行python脚本,传入月份参数。  此处也可做其他操作
    dateNo2=$(date +"%Y-%m-%d %H:%M:%S") # 获取当前时间(年月日时分秒) 
    echo "结束执行($dateNo2): $i" # 打印当前时间(年月日时分秒)
    i=$[$i + 1] # 当前i值加1
    if [ $i -eq 201913 ] # 判断i值是否等于201913,条件必须写在 [] 里
     then
      i=202001 # 如果i值等于201913,则让i值为202001
    fi # 容易忘记判断结束标记
  done # 容易忘记循环执行结束标记
注:
fi 容易忘记判断结束标记 done 容易忘记循环执行结束标记
i=$[$i + 1] 变量加减运算要写在 $[] 里面。
if [ $i -eq 201913 ] 条件必须写在 [] 里

附1: date 参数:

附2:数值比较

-eq   相等(equal)
-ne   不等(not equal)
-gt    大于(greater than)
-lt     小于(less than)
-ge  大于等于 (greater than or equal)
-le   小于等于 (less than or equal)

原文地址:https://www.cnblogs.com/simple-li/p/14040777.html