단일 루프에 두 개의 배열 변수를 전달, 나는 떠들썩한 파티에서 멍청한 놈되는 조합을 생각,이 작업을 수행 할 수있는 올바른 방법을 모르고, 오른쪽 키워드를 검색하지 마지막 장애물을 극복 할 수 없다는 것을 의미합니다.내가 검색 및 답변을 여기에 검색 한
나는 쉼표로 구분 된 배열 변수의 내용을 기반으로 파일에 설정 라인을 만들 수있는 기본 bash는 스크립트를 쓰고 있어요. 그것은 하나의 변수에 대해서는 완벽하게 작동하지만, 두 개의 배열 변수를 조합 해 보았을 때 제대로 작동하지 않습니다. 나는 루프 내에서 루핑을 시도했는데, 다른 라인을 만들 때 다른 라인과 하나씩 생성한다.
두 변수
반복은 동일한 수있다. 예 :- arr1 = SITENAME1, SITENAME2, SITENAME3
- arr2 = 12 : AC : 23 : BF : 12 : CA, 22 : 드 : A2 : BF : 21 : AC, 01 : E4 : 32 : F0 : 12 : C4
및 I는 루프들을 함께 전달할 :
- SITENAME1 ($의 Y) 12 : AC : 23 : BF : 12 : CA의 ($ X)
- SITENAME2 22의 ($ Y) : 드 : A2 : BF : 21 : AC의 ($ X)
- SITENAME3 ($의 Y) 01 : E4 : 32 : F0 : 12 :
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 '가 특정이 라인이다 : C4의 ($ X)는 여기
는 코드 추출물
echo "config flexconnect group ${arr1[y]} ap add ${arr2[x]} "$'\r' >> Flex-cfg.txt
을하지만 의미로는 첫 번째마다두고 :이 개 값을 반복하려고 m은 (부수적으로 나뿐만 아니라, 난 그냥 땜질했습니다 단지 $y
및 $x
로 사용했습니다). 값 Y는 이름이고 값 X는 MAC 주소입니다.
나도 매우 가깝거나 완전히 완전히 틀렸다. 그래서 친절한 도움으로 할 수 있습니다!
에 가독성을 도움이 있다면 당신은 꽤 빠른 코드에서 길을 잃을 수 있습니까? – choroba
arr1은 알파 문자의 문자열입니다. arr2는 MAC 주소입니다. – danpez
이 코드의 한가지 문제점은'arr1'과'arr2'는 실제로 배열이 아니라는 것입니다; 그들은 줄 바꿈이 포함 된 문자열 일뿐입니다. 'arr1 = ($ (echo $ sites | tr "," "\ n")))'은 (완전하지는 않지만) 더 정확할 것입니다. (다음의'read' 문은'arr1'의 값을 덮어 씁니다. 그래서 초기 할당은 moot입니다.) – chepner