Массивы Bash - не работают

Занимаюсь форматированием, играю с xargs и тем, как он передает данные скриптам и т.д., и у меня возникли небольшие проблемы с созданием массива.

alias lstest='ls | xargs --delimiter="\n" ~/.config/lsdif_color.sh'

for fileLine in "$@"
do
    if [[ $fileLine == total* ]]; then echo $fileLine;
    else 
        cols=($fileLine);
        echo ${#cols}, $l
        echo ${cols[0]}
        echo ${cols[$(( ${#cols}-1 ))]}
    fi;
done 

Итак, это работает нормально. Массив "cols" показывает правильную длину и отлично выводит первый и последний элемент.

Теперь о проблеме:

...
else
  # Method 1
  declare -a cw=(11 2 8 7 6 5 4 3 6 0);
  echo ${#cw}

  # Method 2
  widths=($(11 2 8 7 6 5 4 3 6 0));
  echo ${#widths}

  #Method 3
  cws[0]="11"
  cws[1]="2"
  cws[3]="8"
  cws[4]="7"
  cws[5]="6"
  cws[6]="5"
  cws[7]="4"
  cws[8]="3"
  cws[9]="6"
  cws[10]="0"

  echo ${#cws}

fi;

при всех трех попытках определить эти массивы, длина, выводимая эхом, всегда равна 2. А не 10. Массив Cols из примера выше содержит 10 элементов, но попытка создать массив чисел не удается, даже когда я позволяю им быть строками.

Почему?

Спасибо Jaeden "Sifo Dyas" al'Raec Ruiner

0
11.12.2015, 23:25
0 ответов

Теги

Похожие вопросы