Bashで定義された配列の長さを計算する方法は?

Bashで定義された配列の長さを計算する方法は?

私は初めてBashに触れて、私の質問に答えるための良いチュートリアルを見つけることができません。

array=( item1 item2 item3 )
for name in ${array[@]}; do
    echo current/total
    ... some other codes
done

期待される出力で合計値をcurrent計算したいと思います。total

1/3
2/3
3/3

どんなヒントでもくれてありがとう。

ベストアンサー1

たとえば、次を使用して配列インデックスにアクセスし、 を使用して配列の長さ${!array[@]}にアクセスできます。${#array[@]}

#!/bin/bash

array=( item1 item2 item3 )
for index in ${!array[@]}; do
    echo $index/${#array[@]}
done

bashの配列は次のとおりです。ゼロインデックス、実際には次のようになります。

0/3
1/3
2/3

カウントを1から始めるには、に$index置き換えます$((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

おすすめ記事