shellを利用して指定日の前のN日間の日付を取得します。

909 ワード

一、テストファイルを作成するtest.sh

#!/bin/sh
. /etc/profile

#   :
# args[0] ,    ,    yyyy-MM-dd
#  30      

function get_date_30daysbefore()
{
 sec=`date -d $1 +%s`
 sec_30daysbefore=$((sec - 86400*30))
 days_before=`date -d @$sec_30daysbefore +%F`
 echo $days_before
}

if [ $# == 1 ]; then
 today=$1
 dates_30=`get_date_30daysbefore $1`
else
 today=`date -d -1days '+%Y-%m-%d'`
 dates_30=`date -d -30days '+%Y-%m-%d'`
fi

echo $today
echo $dates_30
二、無参運転

##     ,        
$ ./test.sh

2016-10-28
2016-09-29
三、参運

$ ./test.sh 2015-10-29
2015-10-29
2015-09-29
締め括りをつける
以上はshellを利用して指定日の前のN日間の日付の全部の内容を取得しました。本文の内容は皆さんの学習や仕事に役立つことを望んでいます。もし疑問があれば、メッセージを残して交流してもいいです。