Занимаюсь форматированием, играю с 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