bash脚本-在for循环中同时迭代两个(或多个)范围
我知道可以在bash脚本-在for循环中同时迭代两个(或多个)范围,bash,Bash,我知道可以在bashfor循环或任何类似echo()的命令中迭代几个数组 但是否可以同时迭代数组以获得如下结果: # output: 1 a 2 b 3 c 4 d 例如,我需要通过ssh连接到三个服务器范围,名称分别为server-a1.com、server-b1.com、server-c1.com,并且需要在所有第一个服务器上执行操作,而不是在所有第二个服务器上执行操作,依此类推。当然 for i in {1..4} ; do for j in {a..d} ; do
bash
for循环或任何类似echo()的命令中迭代几个数组
但是否可以同时迭代数组以获得如下结果:
# output: 1 a 2 b 3 c 4 d
例如,我需要通过ssh连接到三个服务器范围,名称分别为server-a1.com、server-b1.com、server-c1.com,并且需要在所有第一个服务器上执行操作,而不是在所有第二个服务器上执行操作,依此类推。当然
for i in {1..4} ; do
for j in {a..d} ; do
echo ssh user@server-${i}${j}.com 'cmd'
done
done
输出
ssh user@server-1a.com cmd
ssh user@server-1b.com cmd
ssh user@server-1c.com cmd
ssh user@server-1d.com cmd
ssh user@server-2a.com cmd
ssh user@server-2b.com cmd
ssh user@server-2c.com cmd
. . .
当然,您可以在需要时使用${i}
和${j}
创建自己的ssh
cmdline
我使用了echosh…
作为实际进程的占位符
当然可以
for i in {1..4} ; do
for j in {a..d} ; do
echo ssh user@server-${i}${j}.com 'cmd'
done
done
输出
ssh user@server-1a.com cmd
ssh user@server-1b.com cmd
ssh user@server-1c.com cmd
ssh user@server-1d.com cmd
ssh user@server-2a.com cmd
ssh user@server-2b.com cmd
ssh user@server-2c.com cmd
. . .
当然,您可以在需要时使用${i}
和${j}
创建自己的ssh
cmdline
我使用了echosh…
作为实际进程的占位符
IHTH您可以使用
echo {1..4}{a..d}
如果您选择每五分之一,您将得到您想要的:
all=({1..4}{a..d})
for (( i=0 ; i<${#all[@]} ; i++ )) ; do
(( !(i % 5) )) && echo ${all[i]}
done
all=({1..4}{a..d})
对于((i=0;i您可以使用
echo {1..4}{a..d}
如果您选择每五分之一,您将得到您想要的:
all=({1..4}{a..d})
for (( i=0 ; i<${#all[@]} ; i++ )) ; do
(( !(i % 5) )) && echo ${all[i]}
done
all=({1..4}{a..d})
对于((i=0;i这将满足您的要求:
a=( {1..4} )
b=( {a..d} )
for (( i=0; i<${#a[@]}; i++ )); do
echo -n "${a[i]} ${b[i]} "
done
a=({1..4})
b=({a..d})
对于((i=0;i这将满足您的要求:
a=( {1..4} )
b=( {a..d} )
for (( i=0; i<${#a[@]}; i++ )); do
echo -n "${a[i]} ${b[i]} "
done
a=({1..4})
b=({a..d})
为了((i=0;iI将1A2B3C
表示为仅第一个,仅第二个,依此类推
而不是所有第一个,然后是所有第二个,依此类推
i将1A2B3C表示为仅第一个,仅第二个,依此类推
而不是所有第一个,然后是所有秒等等
Innovative&cool;)是否可以用计算值而不是5来概括它,这样脚本将适用于{1..5}{a..e}
,{1..6}{a..f}
等等?@sjsam:如果两个列表的大小相同,您可以使用大小+1,或者bc谢谢并感谢:)Innovative&cool;)有没有可能用一个计算值而不是5来概括它,这样脚本就可以用于{1..5}{a..e}
,{1..6}{a..f}
等等?@sjsam:如果两个列表的大小相同,您可以使用size+1,或者bc谢谢并感谢:)这不是我对上述问题最后一行的解释:“例如,我需要通过ssh连接到三个服务器,它们的名称分别为server-a1.com、server-b1.com、server-c1.com,并且需要在所有第一个服务器上执行操作,而不是在所有第二个服务器上执行操作,以此类推。”。由于O.P.从未对提供的任何答案做出响应,因此我不认为有任何理由采取进一步行动。请随意编写您自己的答案;-)祝大家好运!但是,是的,我的顺序oa1
vs1a
错了。很明显如何解决这个问题,所以我将保持原样。感谢您的关注!我不是这样解释上面问题的最后一行的:例如,我需要通过ssh连接到三个服务器,它们的名称分别为server-a1.com、server-b1.com、server-c1.com,并且需要在所有第一个服务器上执行操作,而不是在所有第二个服务器上执行操作,以此类推。”。由于O.P.从未对提供的任何答案做出响应,因此我不认为有任何理由采取进一步行动。请随意编写您自己的答案;-)祝大家好运!但是是的,我的订单oa1
vs1a
错了。很明显如何解决这个问题,所以我将保持原样。谢谢您的关注!