2016-08-02 229 views
0

我想在我的for循环中读取分区和复制因子作为参数我该怎么做?而不是2和3,我想从rf中读取并分割原始好坏的相应值。在shell中读取for循环中的多个参数

topics=(raw good bad) 
rf=(4 6 8) 
partition=(2 3 4) 
for topic in ${topics[*]} 
do 
    bin/kafka-topics.sh --create --replication-factor 2 --partitions 3 --topic "$topic" --zookeeper $zk_hosts 
done 
+0

要清楚,它会,例如' - 复制因子4 - 部分2 - 主题原始'和' - 复制因子6 - 部分3 - 主题好'? – chepner

回答

2

听起来你需要一个数字环路:

for ((i = 0; i < ${#topics[@]}; ++i)); do 
    # whatever you want with the corresponding elements of each array, e.g. 
    echo "${topics[i]} ${rf[i]} ${partition[i]}" 
done 

循环计数器从0到阵列topics的长度,所以这是假定每个其它阵列具有相同数量的元素。