shell遍歷乙個日期範圍

2021-06-29 15:46:07 字數 2824 閱讀 8173

方法1

#!/usr/bin/env bash

date1="$1"

date2="$2"

echo "date1: $date1"

echo "date2: $date2"

tempdate=`date -d "-0 day $date1" +%f`

enddate=`date -d "-0 day $date2" +%f`

tempdatesec=`date -d "-0 day $date1" +%s`

enddatesec=`date -d "-0 day $date2" +%s`

echo "####################################"

echo 'tempdate: '$tempdate

echo 'enddate: '$enddate

for i in `seq 1 300`;

doif [[ $tempdatesec -lt $enddatesec ]]; then

break

fiecho $tempdate

python pc_jibzhuanti_url.py $tempdate

tempdate=`date -d "-$i day $date1" +%f`

tempdatesec=`date -d "-$i day $date1" +%s`

done

這是乙個倒序輸出時間的指令碼,需要輸入兩個時間引數,乙個是開始時間,乙個是結束時間,如輸入:

./pc_jibzhuanti_url_run.sh 2014-06-30 2014-06-01

輸出的結果是:

date1: 2014-06-30

date2: 2014-06-01

####################################

tempdate: 2014-06-30

enddate: 2014-06-01

2014-06-30

2014-06-29

2014-06-28

2014-06-27

2014-06-26

2014-06-25

2014-06-24

2014-06-23

2014-06-22

2014-06-21

2014-06-20

2014-06-19

2014-06-18

2014-06-17

2014-06-16

2014-06-15

2014-06-14

2014-06-13

2014-06-12

2014-06-11

2014-06-10

2014-06-09

2014-06-08

2014-06-07

2014-06-06

2014-06-05

2014-06-04

2014-06-03

2014-06-02

2014-06-01

方法2

#!/bin/sh

datebeg=20120412

beg_s=`date -d "$datebeg" +%s`

for ((day=0;day<=31;day++));

doday1=`date -d @$beg_s +"%y-%m-%d"`

a1=`cat file.$.txt|cmd1|cmd2|blablabla...`

b2=`cat file2.$.txt|cmd1|cmd2|blablabla...`

echo "$day1"

echo "scale=2;$a1*100/$b2" | bc

beg_s=$((beg_s+86400))

done

方法3startday=20141216

endday=20150204

sd=`date -d "$startday" +%s`

ed=`date -d "$endday" +%s`

daylen=$(($(($ed-$sd))/86400))

#daylen=0

echo $daylen

sday=`date -d "$startday" +%y-%m-%d`

syesday=`date -d "$sday + 1 day" +%y-%m-%d`

echo $sday

echo $syesday

for((t=0;t<=$daylen;t++));

doitoday=`date +%y%m%d -d "$sday +$t days"`

iyesday=`date +%y%m%d -d "$syesday +$t days"`

echo $itoday

echo $iyesday

idayu=`date +%s -d "$itoday 00:00:00"`

indayu=`date +%s -d "$iyesday 00:00:00"`

echo $idayu;

echo $indayu;

addsql $idayu $indayu $itoday;

done 

乙個shell小案例 建立日期目錄

今天看到乙個shell題目,正好拿來練練手 需要在多個目錄中 如 beijing shanghai tianjin guangzhou 等等 建立子目錄 以年份命名 然後進入子目錄,新建目錄並以當天的日期命名。最終的效果是這程式設計客棧樣的 複製 如下 china guangdong china g...

把乙個範圍的數對映到另乙個範圍

如何將乙個範圍的數對映到另乙個範圍,這是乙個很簡單的問題。但是有時候8位微控制器對乘除法支援不是很好,會出現溢位,這樣你就不能很好地得到你想要的數。這裡我提供乙個簡單的演算法,可以對整型進行誤差較小的對映。目的 將200 1023 中的某個數對映到 20 160 上 原範圍 200 1023 目標範...

乙個shell指令碼

之前學過shell指令碼,但是工作中一直沒有用到,今天由於要搞乙個定時任務,為了防止重複啟動php指令碼,就需要寫乙個shell,下面是指令碼內容 bin bash 宣告要使用哪個shell 下面是備註檔案 這可是乙個好習慣奧 date 2012 7 18 version 1.0 設定相關變數 fi...