非常简单的bash问题。我有一个看起来像这样的数组:
my_array=(1 2 3)
但是,当我打印数组或遍历数组时,bash仅指第一个元素。
echo $my_array
1
for element in my_array ; do
echo $element
done
1
如何访问所有元素?
答案 0 :(得分:4)
您需要使用正确的语法。要显示所有元素,请使用
for element in "${my_array[@]}" ; do
printf '%s\n' "$element"
done
$my_array
与${my_array[0]}
相同。
此外,原始问题中的循环输出my_array
,而不是1
。没有$
,它不是变量,而只是一个字。