Односторонняя дорога:
#!/bin/bash
for num in 1 2
do
read -p "Enter new val for files starting with $num :" val
for i in ${num}*.[abc]
do
ext=${i##*.}
mv $i "$val.$ext"
done
done
Вы можете получить доступ к индексам массива с использованием $ {! Array [@]}
и длина массива с использованием $ {# Array [@]}
, E.g. :
#!/bin/bash
array=( item1 item2 item3 )
for index in ${!array[@]}; do
echo $index/${#array[@]}
done
Обратите внимание, что поскольку массивы Bash находятся NOL, проиндексированы , вы фактически получите:
0/3
1/3
2/3
, если вы хотите, чтобы подсчет запустить из 1, вы можете заменить $ index
$ ((индекс + 1))
. Если вы хотите, чтобы значения , а также индексы, которые вы можете использовать «$ {Array [index]}»
, то есть
#!/bin/bash
array=( item1 item2 item3 )
for index in ${!array[@]}; do
echo $((index+1))/${#array[@]} = "${array[index]}"
done
, давая
1/3 = item1
2/3 = item2
3/3 = item3
Нулевой индекс вполне допустим, если вы считаете индекс фактически смещением от базового адреса массива. На самом деле это норма, хотя в разных диалектах по-разному. В старом языке Jovial [0]
фактически содержал максимальный размер массива. поэтому он начинался с [1]
.
В некоторых реализациях Basic вы можете произвольно выбрать 0
или 1
в качестве первого индекса. И по крайней мере один Basic позволяет назначать массивы для индексации от [n]
до [m]
. где n
и m
могут иметь любое целое значение, даже отрицательное, пока n
меньше или равно m
. Значение n
при этом вычитается из введенного [index]
, так как index-n = 0
, если index соответствует n
.
Но вы можете сделать то же самое и даже больше в своем собственном коде. Вы даже можете изменить порядок массива таким образом:
dim array(0, abs(m-n));
step=sign(m-n);
if n > m then
base=m
else
base=n;
fi
Этот пример кода на самом деле частично состоит из одного языка. Я просто хотел, чтобы он был более читабельным. Переменная step используется для контроля видимого направления движения, положительного или отрицательного, и используется для вычисления эффективного индекса при входе в массив или выходе из него, который на самом деле всегда положителен, начиная с [0]
.