在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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top