5か月以内にforループを実行するには?

5か月以内にforループを実行するには?

私は1ヶ月(20170301 - 20170331)の間だけスクリプトを有効にするためにこのループを作成しました。

for ((i = 20170301; i<=20170331; i++)) ; do /home/jul/exp/prod/client/apps/scripts/runCer client-layer-name $i; done

ところで5ヶ月(20170301~20170831)の間実行したいのですが、どうすればいいですか?

ベストアンサー1

GNUがdate利用可能であると仮定すると、次の//スクリプトを使用できますbashksh93zsh

start=$(date -ud 20170301 "+%s") # start time in epoch time (seconds since Jan. 1st, 1970)
end=$(date -ud 20170831 "+%s") # end time 

for ((i=start; i <= end; i+=86400)); do # 86400 is 24 hours
    runCerclient-layer-name "$(date -ud "@$i" +%Y%m%d)"
done

おすすめ記事