我已經在這裏搜索並搜索了答案,並且我認爲在bash中作爲noob的組合,不知道正確的方式來執行此操作,並且不搜索正確的關鍵字意味着我無法完全擺脫最後的障礙。將兩個數組變量傳遞到單個循環中
我正在編寫一個基本的bash腳本,根據逗號分隔的數組變量的內容在文件中創建配置行。它適用於單個變量,但是當我嘗試並結合兩個數組變量時,它不起作用。我試過在循環內循環,並且當我想要它與其創建的其他5行循環時,它們會一個接一個地創建這些行。
這兩個變量具有相同的迭代次數。例如:
- ARR1 = SITENAME1,SITENAME2,SITENAME3
- ARR2 = 12:AC:23:BF:12:CA,22:德: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
正是這種線特別是I」米試圖與2個值迭代(順便說一句,我只用$y
和$x
用它作爲很好,我剛剛被修修補補):
echo "config flexconnect group ${arr1[y]} ap add ${arr2[x]} "$'\r' >> Flex-cfg.txt
但因爲它代表它只是把每一次的第一個。值Y是名稱,值X是MAC地址。
我要麼非常接近要麼完全錯誤。所以可以做些什麼幫助!
你能告訴裏面有什麼ARR1和ARR2? – choroba
arr1只是字符串的字符。 arr2是MAC地址。 – danpez
這段代碼的一個問題是'arr1'和'arr2'實際上不是數組;它們只是嵌入換行符的字符串。 'arr1 =($(echo $ sites | tr「,」「\ n」))'會更多(儘管不完全)正確。 (雖然下面的'read'語句會覆蓋'arr1'的值,所以初始分配是沒有意義的。) – chepner