循环遍历两个 seq 声明

保罗道森

我正在尝试使用 bash 脚本创建 F5 命令,该脚本循环遍历两个序列声明,一个用于 IP 地址,另一个用于 VLAN,然后我在最后将它们连接起来。

#!/bin/bash

vlan_seq=$(seq 1010 1010;seq 1012 1024;seq 1054 1054;seq 1146 1161)
ip_seq=$(seq 10 10;seq 12 24;seq 54 54;seq 146 161)

for i in $ip_seq; do

ip_part=$(echo net self 10.189.${i}.1 "{" address 10.189.${i}.1/24)

done

for e in $vlan_seq; do

vlan_part=$(echo floating enabled traffic-group traffic-group-1 unit 1 vlan 
vlan_${e}_int_compute "}")

done

echo ${ip_part} ${vlan_part}

这似乎有效,但我刚刚得到最后一个结果,我对如何解决这个问题有些困惑。我应该通过什么循环来获得所有结果?

net self 10.189.161.1 { 地址 10.189.161.1/24 浮动启用流量组流量组 1 单元 1 vlan vlan_1161_int_compute }

保罗道森

设法找到更好的方法来做到这一点:

#!/bin/bash

vlan_seq=($(seq 1010 1010;seq 1012 1024;seq 1054 1054;seq 1146 1161))
ip_seq=($(seq 10 10;seq 12 24;seq 54 54;seq 146 161))

for ((i=0;i<${#ip_seq[@]};++i)); do

  printf "net self 10.189.%s.1 { address 10.189.%s.1/24 floating enabled traffic-group traffic-group-1 unit 1 vlan vlan_%s_int_compute }\n" 
"${ip_seq[i]}" "${ip_seq[i]}" "${vlan_seq[i]}"

done

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章