bash (в отличие от POSIX sh) поддерживает массивы:
fruits=(apple orange kiwi "dried mango")
for fruit in "${fruits[@]}"; do
echo "${fruit}"
done
Это имеет то преимущество, что элементы массива могут содержать пробелы или другие члены $IFS; если они были правильно вставлены как отдельные элементы, они считываются одинаково.
Ответ 2
Вот так:
FRUITS="apple orange kiwi"
for FRUIT in $FRUITS; do
echo $FRUIT
done
Обратите внимание, что это не будет работать, если в именах ваших фруктов есть пробелы. В этом случае см. этот ответ, который немного менее портативен, но гораздо более надежный.
Ответ 3
Теперь, когда ответ, который мне нравится, был принят как правильный ответ, я перейду к другой теме: как использовать IFS для личной выгоды.:-P
fruits="apple,orange,kiwifruit,dried mango"
(IFS=,
for fruit in $fruits; do
echo "$fruit"
done)
Я поставил код в скобках, так что изменение IFS изолировано в свой собственный подпроцесс; таким образом, в конце секции в скобках IFS возвращается к своему старому значению.: -)