关于bash:为什么for-in循环不打印我想要的东西?

Why for-in loop doesn't print what I want?

本问题已经有最佳答案,请猛点这里访问。

我在终端上写道:

1
2
3
4
arr=(1 2 3)
for x in $arr; do
 echo $x
done

它只打印"1"。为什么不打印1 2 3?


变化

1
for x in $arr; do

1
for x in"${arr[@]}"; do


要扩展到数组的所有元素,请使用"${arr[@]}"

1
for x in"${arr[@]}"; do

当您将数组名用作普通变量而不编制索引时,它将扩展到第一个元素。