Я новичок в Bash и не могу найти хороший учебник, чтобы ответить на мой вопрос.
array=( item1 item2 item3)
for name in ${array[@]}; do
echo current/total
... some other codes
done
Я хочу вычислить «текущее» и «общее» значение как ожидаемый результат:
1/3
2/3
3/3
Спасибо за любые советы
${array[@]}
в двойные кавычки. В противном случае будет выполнено разделение слов, и вы получите нежелательные результаты, например, при вводеarray=("item 1" "item 2" "item 3")
.Ответы:
Вы можете получить доступ к индексам массива, используя
${!array[@]}
и длину массива${#array[@]}
, например:Обратите внимание, что поскольку массивы bash проиндексированы нулями , вы получите:
Если вы хотите, чтобы счетчик работал с 1, вы можете заменить
$index
на$((index+1))
. Если вы хотите значения, а также индексы, которые вы можете использовать,"${array[index]}"
т.е.дающий
источник
echo ($index+1)/${#array[@]}
:?Нулевой индекс вполне допустим, если вы думаете, что индекс фактически является смещением от базового адреса массива. На самом деле это норма, хотя она варьируется от диалекта к диалекту. Со старым языком Jovial
[0]
фактически содержался максимальный размер массива. так началось с[1]
.В некоторых базовых реализациях вы можете произвольно выбрать один
0
или1
первый индекс. И по крайней мере один Basic позволяет назначить массивы индекса Фрон[n]
к[m]
. гдеn
иm
может иметь любое целочисленное значение, даже отрицательное, еслиn
оно меньше или равноm
. Значениеn
их становится вычитаемым из[index]
введенного, какindex-n = 0
будто индекс соответствуетn
.Но вы можете сделать то же самое и многое другое в своем собственном коде. Вы можете даже изменить порядок массива следующим образом:
Этот пример кода на самом деле только частично из одного языка. Я просто хотел, чтобы это было более читабельным. Переменная step используется для управления видимым направлением движения в положительном или отрицательном направлении и используется для расчета эффективного индекса при входе или выходе из массива, который фактически всегда является положительным
[0]
.источник