我在这里搜索并搜索了答案,我认为作为 bash 的菜鸟,不知道正确的方法,以及不搜索正确的关键字的组合意味着我无法完全克服最后的障碍。
我正在编写一个基本的 bash 脚本,以根据逗号分隔数组变量的内容将配置行创建到文件中。它非常适用于单个变量,但是当我尝试组合两个数组变量时,它并不完全有效。我试过在循环中循环,当我希望它与它创建的其他 5 行循环时,它只是一个接一个地创建行。
这两个变量具有相同的迭代次数。例如:
- arr1=站点名称 1,站点名称 2,站点名称 3
- arr2=12:ac:23:bf:12:ca,22:de:a2:bf:21:ac,01:e4:32:f0:12:c4
我想将它们一起传递到循环中:
- SITENAME1 ($y) 与 12:ac:23:bf:12:ca ($x)
- SITENAME2 ($y) 与 22:de:a2:bf:21:ac ($x)
- SITENAME3 ($y) 与 01:e4:32:f0:12:c4 ($x)
这是代码摘录:
arr1=$(echo $sites | tr "," "\n")
arr2=$(echo $mastermacs | tr "," "\n")
IFS="," read -a arr1 <<< "$sites"
IFS="," read -a arr2 <<< "$mastermacs"
for y in "${!arr1[@]}"; do
# for x in "${arr2[@]}"; do
n=$(($n+1))
echo "config flexconnect group ${arr1[y]} add"$'\r' >> Flex-cfg.txt
echo "config flexconnect group ${arr1[y]} ap add ${arr2[x]} "$'\r' >> Flex-cfg.txt
echo "config flexconnect group ${arr1[y]} predownload master ${arr1[y]}_AP01"$'\r' >> Flex-cfg.txt
echo "config flexconnect group ${arr1[y]} predownload enable"$'\r' >> Flex-cfg.txt
echo "config flexconnect group ${arr1[y]} predownload start primary"$'\r' >> Flex-cfg.txt
# done
done
尤其是这一行,我正在尝试使用 2 个值进行迭代(顺便说一下,我已经使用它了,$y而且$x我一直在修补):
echo "config flexconnect group ${arr1[y]} ap add ${arr2[x]} "$'\r' >> Flex-cfg.txt
但就目前而言,它每次只放第一个。值 Y 是名称,值 X 是 MAC 地址。
我要么非常接近,要么完全完全错误。所以可以做一些善意的帮助!