LINUX.ORG.RU

История изменений

Исправление vodz, (текущая версия) :

А, странное условие, ну да ладно. Всё равно без магических чисел красивее. Заодно и touch только один раз вызывать можно:

startd=11
startm=1

declare -i m d md=(0 31 28 31 30 31 30 31 31 30 31 30 31) j
for m in {1..12}; do
 [[ m -lt startm ]] && continue
 for ((d = 1; md[m] >= d; d++)); do
   [[ startm -eq m && d -lt startd ]] && continue
   printf -v "o[j++]" "%02d.%02d.2019" $d $m
 done
done
touch ${o[@]}

Исправление vodz, :

А, странное условие, ну да ладно. Всё равно без магических чисел красивее. Заодно и touch только один раз вызывать можно:

startd=11
startm=1

declare -i m d md=(31 28 31 30 31 30 31 31 30 31 30 31) j
for m in {1..12}; do
 [[ m -lt startm ]] && continue
 for ((d = 1; md[m] >= d; d++)); do
   [[ startm -eq m && d -lt startd ]] && continue
   printf -v "o[j++]" "%02d.%02d.2019" $d $m
 done
done
touch ${o[@]}

Исходная версия vodz, :

А, странное условие, ну да ладно. Всё равно без магических чисел красивее. Заодно и touch только один раз вызывать можно:

startd=11
startm=1

declare -i m d md=(0 31 28 31 30 31 30 31 31 30 31 30 31) j
for m in {1..12}; do
 [[ m -lt startm ]] && continue
 for ((d = 1; md[m] >= d; d++)); do
   [[ startm -eq m && d -lt startd ]] && continue
   printf -v "o[j++]" "%02d.%02d.2019" $d $m
 done
done
touch ${o[@]}