我有个数组-
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发布于 2018-11-13 04:33:14
#!/bin/bash
val=(4196976 4601313 4242010 0 3581283 2392831 3176852 3205880 3794451 0 3627872)
n=0
for i in ${val[@]}; do
[ $i -eq 0 ] && echo Index: $n, value: $i
((n++))
done发布于 2018-11-13 04:51:41
如果数组中有空白,则最好循环遍历数组的索引:
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作为索引。
这也适用于关联数组(字符串作为索引而不是整数)。
https://unix.stackexchange.com/questions/481375
复制相似问题