특정 날짜를 기준으로 며칠전 날짜를 얻어오는 예시인데,
아래와 같이 하면 안된다.
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
'unix and linux' 카테고리의 다른 글
sort를 이용해서 여러 필드 및 숫자 필드 정렬하기 (0) | 2016.02.23 |
---|---|
sort를 이용하여 여러 필드 정렬하기 (0) | 2016.02.23 |
jq - 리눅스 커맨드 라인의 json processor (0) | 2016.02.09 |
[bash] 자리수 앞의 빈 자리를 0으로 채우기 (0) | 2016.02.05 |
ubuntu에서 rpm 설치하기 (0) | 2016.02.03 |