3 回答

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超4個(gè)贊
從阿尼桑的回答和其中的評(píng)論,我們現(xiàn)在知道您想要什么。這是bashier風(fēng)格的同一件事,使用for循環(huán)。請(qǐng)參見(jiàn)參考手冊(cè)中的 “ 循環(huán)構(gòu)造”部分。我也在使用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
另一種可能性是使用關(guān)聯(lián)數(shù)組:
#!/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
根據(jù)您想做什么,您不妨考慮第二種可能性。但是請(qǐng)注意,您不會(huì)輕易控制字段在第二種可能性中的顯示順序(嗯,這是一個(gè)關(guān)聯(lián)數(shù)組,所以這并不奇怪)。

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊
如果所有數(shù)組的順序正確,只需傳遞索引即可。
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
添加回答
舉報(bào)