Altere seu script da seguinte maneira:
#!/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[@]}"
Acabei de adicionar a if
-clause antes de adicionar a data ao array. A sequência% u de date
representa:
%u day of week (1..7); 1 is Monday
Portanto, se esse valor for menor ou igual ( -le
) a 5
, é segunda-feira a sexta-feira.