다음 영업일(월요일부터 금요일까지)만 필요합니다(bash에서).
#!/bin/bash
startdate=20141030
enddate=20141120
dates=()
for (( date="$startdate"; date != enddate; )); do
dates+=( "$date" )
date="$(date --date="$date + 1 days" +'%Y%m%d')"
done
echo "${dates[@]}"
답변1
스크립트를 다음과 같이 변경합니다.
#!/bin/bash
startdate=20141030
enddate=20141120
dates=()
for (( date="$startdate"; date != enddate; )); do
if [ "$(date --date="$date" +'%u')" -le "5" ]; then
dates+=( "$date" )
fi
date="$(date --date="$date + 1 days" +'%Y%m%d')"
done
echo "${dates[@]}"
방금 if
배열에 날짜를 추가하기 전에 - 절을 추가했습니다. %u 시퀀스는 다음 date
을 나타냅니다.
%u day of week (1..7); 1 is Monday
-le
따라서 값이 ( ) 보다 작거나 같으면 5
월요일부터 금요일까지입니다.