题
在perl一个只会做下面存储和迭代表的名字
my @fruit = (apple, orange, kiwi);
foreach (@fruit) {
print $_;
}
什么就相当于是在庆典?
解决方案
庆典(不同于POSIX sh)支持阵列:
fruits=(apple orange kiwi "dried mango")
for fruit in "${fruits[@]}"; do
echo "${fruit}"
done
这具有的优点是,列要素可包含空间或其他成员$IFS;只要他们正确地插入作为单独的元素,它们都读出同样的方式。
其他提示
是这样的:
FRUITS="apple orange kiwi"
for FRUIT in $FRUITS; do
echo $FRUIT
done
注意这不会工作如果还有空间中的名字你的水果。在这种情况下,看 这个答案 相反,这是略少便携式,但更加强大。
现在,答案我就像已经被接受为正确的答案,我现在移动到另一个主题:如何使用 IFS
为了个人利益。:P
fruits="apple,orange,kiwifruit,dried mango"
(IFS=,
for fruit in $fruits; do
echo "$fruit"
done)
我已经把代码在方括号中,以便的 IFS
变化是孤立的进入其自己的子进程;因此,在结尾括号内的部分, IFS
是恢复到其旧的价值。:-)
for i in apple orange kiwi do echo $i done
不隶属于 StackOverflow