![for 루프에서 2개의 개별 배열에 2개의 변수를 사용하는 방법은 무엇입니까?](https://linux55.com/image/203355/for%20%EB%A3%A8%ED%94%84%EC%97%90%EC%84%9C%202%EA%B0%9C%EC%9D%98%20%EA%B0%9C%EB%B3%84%20%EB%B0%B0%EC%97%B4%EC%97%90%202%EA%B0%9C%EC%9D%98%20%EB%B3%80%EC%88%98%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
당신의 도움을 주셔서 감사합니다. 2개의 배열을 쿼리하기 위해 Ubuntu 시스템에서 for 루프를 실행하고 있습니다.
for ((prod in "${Prod_elements[@]}";sProd in "${Prod_elements_stripped[@]}"))
위에 나열된 배열은 파일이 아닌 bash에서 실행될 때 생성됩니다.
Prod_elements=("a/A" "b/B" "c/C" "d/D" )
Prod_elements_stripped=("a-A" "b-B" "c-C" "d-D")
그 다음에
do echo "$prod" " " "$sProd"
done
그래서
완전한 Prod_elements=("a/A" "b/B" "c/C" "d/D" ) Prod_elements_stripped=("aA" "bB" "cC" "dD")
for ((prod in "${Prod_elements[@]}";sProd in "${Prod_elements_stripped[@]}"))
do
echo "$prod" " " "$sProd"
done
필요한 산술 오류 exp를 제공합니다. 어떻게 해야 하나요? 감사해요
답변1
올바르게 수행하려는 작업을 추측하면 두 개의 인덱스 배열 대신 단일 연관 배열을 사용할 수 있습니다.
declare -A prod=( ["a/A"]="a-A" ["b/B"]="b-B" ["c/C"]="c-C" ["d/D"]="d-D" )
for key in "${!prod[@]}"; do
printf "Key '%s' corresponds to value '%s'\n" "$key" "${prod[$key]}"
done
만약 너라면~ 해야 하다고려 중인 접근 방식을 사용하면 인덱스를 반복하여 수행할 수 있습니다.
Prod_elements=("a/A" "b/B" "c/C" "d/D" )
Prod_elements_stripped=("a-A" "b-B" "c-C" "d-D")
for ((i=0; i<${#Prod_elements[@]}; i++)); do
printf '%s %s => %s\n' "$i" "${Prod_elements[$i]}" "${Prod_elements_stripped[$i]}"
done