迭代bash中的关联数组,键为boolean true false

时间:2018-04-17 15:29:55

标签: bash loops key associative-array

 #!/bin/bash
 key1=true
 key2=true
 filter_param1=filter1
 filter_param2=filter2
 declare -A arr=( [$key1]=$filter_param1 [$key2]=$filter_param2 ) 
 for key in ${!arr[@]}; do
 echo "key value is " $key
 if [ "$key" == "true" ] ; then
 echo $key ${arr[${key}]}
 fi
 done

上面的代码只迭代一次,如果filter_param1和filter_param2都是false或者都是true。对于所有其他情况,它迭代两次。我能知道发生这种情况的原因

1 个答案:

答案 0 :(得分:1)

它正在发生,因为如果$key1$key2是相同的字符串,那么该键的最新分配会设置其值。

如果在声明后打印出数组,如果键是相同的,你会看到它只有一个项目。