bash for循环,序列然后是异常

时间:2015-01-02 04:24:48

标签: bash for-loop

有没有人知道是否有办法在for循环中指定一个异常引发的序列,以便我可以ssh到整个机器堆而无需单独输入每个机器号?

     for i in comp{1..5,7,9}; do
         ssh root@$i" echo $i; $doOtherStuff";
     done

我希望这不是太模糊 - 我很难找到合适的词语,所以我可能错过了在现有问题中搜索的关键词

由于

2 个答案:

答案 0 :(得分:4)

您无法在一个大括号中混合逗号和范围。但你可以用多个级别来做到这一点:

for i in comp{{1..5},7,9}
    ...
done

答案 1 :(得分:2)

我希望我明白你正确的尝试。如果我这样做,那么一种方法就是

 for i in {1..5} 7 9; do
     comp="comp$i"
     ssh root@$comp" echo $comp; $doOtherStuff";
 done

列表i遍历为1 2 3 4 5 7 9。然后,您可以使用它来组合机器的名称(在此处的变量comp中),并按照您打算使用i的方式使用它。