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
添加回答
举报