forループで2つの別々の配列に2つの変数を使用するには?

forループで2つの別々の配列に2つの変数を使用するには?

ご協力ありがとうございます。 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

正しく実行したいことを推測すると、2つのインデックス配列の代わりに単一の連想配列を使用できます。

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

おすすめ記事