变量计数器组合成单独的命令

时间:2014-09-10 14:06:36

标签: bash

我需要为以下场景设计代码:

我需要设置packageN和productN变量,这应该通过循环和计数器来完成我想。然后根据我得到的包和产品的数量,它将运行相应数量的命令。这是包含2个包和2个产品的方案:

    package1=packageA
    package2=packageB

    product1=productA
    product2=productB

    somecommand --package $package1 --product $product1
    somecommand --package $package1 --product $product2
    somecommand --package $package2 --product $product1
    somecommand --package $package2 --product $product2

这可能变得非常复杂,因为我需要例如10个产品的10个包以及上面的代码不是非常优化的,我相信应该有简单的方法如何做到这一点,例如:

    n=o
    while true; do
    echo specify package name:
    read package$n

    echo Do you have another package?
    read yesno

    if [[ $yesno = n ]]; then
    break
    else
    ((n++))
    done

同样的产品循环,但后来我不知道如何基于我有多少变量来构建上述命令。

1 个答案:

答案 0 :(得分:1)

packages=( package-1 package-2 package-3 )
products=( product-1 product-2 product-3 )

for package in "${packages[@]}"
do
    for product in "${products[@]}"
    do
        somecommand --package "$package" --product "$product"
    done
done