3 回答

TA貢獻1825條經驗 獲得超4個贊
從阿尼桑的回答和其中的評論,我們現在知道您想要什么。這是bashier風格的同一件事,使用for循環。請參見參考手冊中的 “ 循環構造”部分。我也在使用printf而不是echo。
#!/bin/bash
array=( "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/bash
declare -A continent
continent[Vietnam]=Asia
continent[Germany]=Europe
continent[Argentina]=America
for c in "${!continent[@]}"; do
printf "%s is in %s\n" "$c" "${continent[$c]}"
done
根據您想做什么,您不妨考慮第二種可能性。但是請注意,您不會輕易控制字段在第二種可能性中的顯示順序(嗯,這是一個關聯數組,所以這并不奇怪)。

TA貢獻2011條經驗 獲得超2個贊
如果所有數組的順序正確,只需傳遞索引即可。
array=(
Vietnam
Germany
Argentina
)
array2=(
Asia
Europe
America
)
for index in ${!array[*]}; do
echo "${array[$index]} is in ${array2[$index]}"
done
Vietnam is in Asia
Germany is in Europe
Argentina is in America
添加回答
舉報