Aus der Antwort von anishsane und den darin enthaltenen Kommentaren wissen wir jetzt, was Sie wollen. Hier ist das Gleiche in einem bashier Stil mit einer for-Schleife. Siehe den Abschnitt Schleifenkonstrukte im Referenzhandbuch . Ich benutze auch printf
anstelle von 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
Eine andere Möglichkeit wäre die Verwendung eines assoziativen Arrays:
#!/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
Je nachdem, was Sie tun möchten, können Sie diese zweite Möglichkeit in Betracht ziehen. Beachten Sie jedoch, dass Sie die Reihenfolge, in der die Felder in der zweiten Möglichkeit angezeigt werden, nicht leicht steuern können (nun, es ist ein assoziatives Array, also keine wirkliche Überraschung).
-a
nicht-A