З відповіді anishsane та коментарів до них ми тепер знаємо, чого ви хочете. Ось те саме в стилі башер , використовуючи цикл for. Див. Розділ “ Циклічні конструкції ” в довідковому посібнику . Я також використовую printf
замість echo
.
#!/bin/bash
array=( "Vietnam" "Germany" "Argentina" )
array2=( "Asia" "Europe" "America" )
for i in "${!array[@]}"; 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
Залежно від того, що ви хочете зробити, ви можете також розглянути цю другу можливість. Але зауважте, що ви не зможете легко контролювати порядок, коли поля відображаються при другій можливості (ну, це асоціативний масив, тому насправді це не сюрприз).