bash shell script for yesterdays date (last working day)

You were so close:

day_or_week=`date +%w`
if [ $day_or_week == 1 ] ; then
  look_back=3
else
  look_back=1
fi

date -d "$look_back day ago" +'%Y/%m/%d'

I'm using a Mac, so my date command doesn't have the same -d flag yours seems to, but the following should work if it behaves as you've indicated:

if [[ $(date +%w) == 1 ]]
then
    LOOK_BACK=3
else
    LOOK_BACK=1
fi

date -d "${LOOK_BACK} day ago" +%Y/%m/%d

Sunday also needs to be checked.

DAY_OF_WEEK=`date +%w`
if [ $DAY_OF_WEEK = 0 ] ; then
  LOOK_BACK=2
elif [ $DAY_OF_WEEK = 1 ] ; then
  LOOK_BACK=3
else
  LOOK_BACK=1
fi

date -d "$LOOK_BACK day ago" +'%Y/%m/%d'

Tags:

Bash

Date