anishsane の回答とその中のコメントから、あなたが何を望んでいるかがわかります。for ループを使用して、同じことをbashierスタイルで示します。リファレンス マニュアルの「ループ コンストラクト」セクションを参照してください。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
やりたいことによっては、この 2 番目の可能性を検討することもできます。ただし、2 番目の可能性ではフィールドが表示される順序を簡単に制御できないことに注意してください (これは連想配列であるため、それほど驚くことではありません)。