unix and linux
[shell script] 특정 날짜를 기준으로 이전 며칠 날짜를 구하는 예시
'김용환'
2016. 2. 17. 17:24
특정 날짜를 기준으로 며칠전 날짜를 얻어오는 예시인데,
아래와 같이 하면 안된다.
dd=`date --date="$GIVEN_DAY" -d "-$i day" +%m`
아래와 같이 코딩하면 된다.
dd=`date "--date=${GIVEN_DAY} -d -${i} day" +%d`
실제 예시 코드이다.
#!/bin/sh
if [ $# -lt 3 ]; then
echo 1>&2 "$0: not enough arguments [usage] shell-script.sh YEAR MONTH DAY"
exit 2
fi
YEAR=$1
MONTH=$2
DAY=$3
NUM_DAYS=$4
GIVEN_DAY=`echo ${YEAR}${MONTH}${DAY}`
INPUTS=()
for (( i=0 ; i<$NUM_DAYS ; i++ ))
do
yyyy=`date "--date=${GIVEN_DAY} -d -${i} day" +%Y`
mm=`date "--date=${GIVEN_DAY} -d -${i} day" +%m`
dd=`date "--date=${GIVEN_DAY} -d -${i} day" +%d`
INPUTS+=("$yyyy/$mm/$dd")
done
for input in "${INPUTS[@]}"
do
echo $input
done
$ sh test.sh 2016 02 02 3
2016/02/02
2016/02/01
2016/01/31