从阿尼桑的回答和其中的评论,我们现在知道您想要什么。这是bashier风格的同一件事,使用for循环。请参见参考手册中的 “ 循环构造”部分。我也在使用printf而不是echo。#!/bin/basharray=( "Vietnam" "Germany" "Argentina" )array2=( "Asia" "Europe" "America" )for ((i=0;i<${#array[@]};++i)); do printf "%s is in %s\n" "${array[i]}" "${array2[i]}"done另一种可能性是使用关联数组:#!/bin/bashdeclare -A continentcontinent[Vietnam]=Asiacontinent[Germany]=Europecontinent[Argentina]=Americafor c in "${!continent[@]}"; do printf "%s is in %s\n" "$c" "${continent[$c]}"done根据您想做什么,您不妨考虑第二种可能性。但是请注意,您不会轻易控制字段在第二种可能性中的显示顺序(嗯,这是一个关联数组,所以这并不奇怪)。
如果所有数组的顺序正确,只需传递索引即可。array=( Vietnam Germany Argentina)array2=( Asia Europe America)for index in ${!array[*]}; do echo "${array[$index]} is in ${array2[$index]}"doneVietnam is in AsiaGermany is in EuropeArgentina is in America