forループで繰り返される配列のインデックスを取得しようとしています。私は次のようなことをしています。
arr=( foo bar baz )
for i in $arr; do
echo "index ${#arr}";
done
ただし、これは配列の現在の値の位置ではなく、配列内の要素の数だけを提供します。どうすればいいですか?
ベストアンサー1
誰も明確な答えを持っていないようだからそうします。
なぜCやJavaなどの主流言語で使用される数値forループを使用しないのですか?
for ((i = 1; i <= $#arr; i++)); do
echo "Index: $i, value: ${arr[i]}"
done
あるいは、より短いかもしれません(大規模な配列の場合はより遅く、潜在的にメモリ集約的です)。
for i in {1..$#arr}; do
echo "Index: $i, value: ${arr[i]}"
done