感谢您的帮助。我要在 Ubuntu 机器上运行一个 for 循环来查询 2 个数组:
for ((prod in "${Prod_elements[@]}";sProd in "${Prod_elements_stripped[@]}"))
上面列出的数组是在 bash 中运行 for 时创建的,不是文件
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