私は配列を持っています -
val=(4196976 4601313 4242010 0 3581283 2392831 3176852 3205880 3794451 0 3627872)
値が0のすべての要素のインデックスを見つけようとします。
どうすればいいですか?
これが私が試したことです -
for ((i = 1; i <= 10; i++)); do
if [ "$i" -eq "0" ]; then
echo "Index: $i, value: ${val[i]}"
fi
done
出力は
Index: 3, value: 0
Index: 9, value: 0
ベストアンサー1
配列に間隔がある場合は、配列のインデックスを繰り返すことをお勧めします。
for i in "${!val[@]}"
do
if [[ ${val[i]} -eq 0 ]]
then
echo "Index: $i, value: ${val[i]}"
fi
done
したがって、配列が次のような場合:
val=([100]=327823 [54]=0 [787998]=377463287)
それでも54
インデックスを取得できます。
これは連想配列(整数ではなくインデックスとして使用される文字列)でも機能します。