#!/bin/bash
hr=(00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23)
for i in ${hr[@]}; do
echo ${hr[i]}
done
user@userver:$ ./stat.sh
00
01
02
03
04
05
06
07
./stat.sh: строка 7: 08: слишком большое значение для основания (неверный маркер «08»)
for i in ${hr[@]}; do echo ${hr[i]} done
Bash думает, что если число начинается с 0, то оно в восьмеричной системе счисления и числа 8 в ней нет. Что делать?
echo ${hr[i]}
как индексы. А если выбрал индексы, то следовать правилам написания чисел.#!/bin/bash
hr=(00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23)
for i in ${hr[@]}; do
echo $i
done
#!/bin/bash
hr=(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23)
for i in ${hr[@]}; do
printf "%02d\n" ${hr[i]}
done