在shell中读取for循环中的多个参数

时间:2016-08-02 15:31:36

标签: shell

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

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

1 个答案:

答案 0 :(得分: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的长度,因此这假定每个其他数组具有相同数量的元素。