Skip to main content

Linux Bash Shell get x days ago


Bash script to get x days from current date.

Get yesterday's date, 2 days ago or any desired date prior from the current date.

Here's the script with comment on each line:

//===============================
#!/bin/sh

xdate1=$(date -d "-1 day" +"%Y%m%d")
echo $xdate1
#will return yesterday's date
#Output sample:
#20141001

xdate2=$(date -d "-2 day" +"%Y%b%d")
echo $xdate2
#will return 2 days before the current date
#Output sample:
#2014Sep30


#below is just an example on how to cut the variable into year, month and day of the month

#if xdate1 has the value of -20141001
xcutDate1=${xdate1:7:2}
#will return 01
#will return the date of the month


#if xdate1 has the value of -2014Oct01
xcutDateMonth2=${xdate2:4:3}
#will return Oct
#will return month


#if xdate1 has the value of -2014Oct01
xcutYear1=${$xdate1:0:4}
#will return 2014
#will return the yea
r

echo $xcutYear1 $xcutDateMonth2
#will display the year and the month

#xToday will return todays date
xToday=$(date  +"%Y%m%d")
echo $xToday
#will return: 20141124
#The month return range from (1 to 12 equivalent to Jan-Dec)


xxToday=$(date  +"%Y%b%d")
echo $xxToday
#will return 2014Nov24
#The month is written as 3 letter abbreviation (Jan to Dec)



Here's the script without the comments:
//===============================

#!/bin/sh

xdate1=$(date -d "-1 day" +"%Y%m%d")
echo $xdate1

xdate2=$(date -d "-2 day" +"%Y%b%d")
echo $xdate2

xcutDate1=${xdate1:7:2}
echo $xdate1

xcutDateMonth2=${xdate2:4:3}
xcutYear1=${$xdate1:0:4}

echo $xcutYear1 $xcutDateMonth2

xToday=$(date  +"%Y%m%d")
echo $xToday


xxToday=$(date  +"%Y%b%d")
echo $xxToday


//===============================


Cheers!!! Hope it helps..

Comments