从stdin读取数组元素,在bash中用空格分隔数字

时间:2013-10-30 14:15:02

标签: arrays bash shell

我在bash中尝试这段小代码:

echo "Enter number(a b c)"
read natc
echo ${natc[1]}

输入应该是一行中的3个数字,空格分隔,从标准输入读取,例如4 5 6 我希望以数组natc[]访问它们,即natc[0]=4, natc[1]=5等。

google中有很多例子,但主要是从文件或预定义值读取数组。我怎样才能实现目标?

2 个答案:

答案 0 :(得分:5)

您可以使用-a读取数组:

read -a natc

答案 1 :(得分:3)

使用-p-a阅读选项:

read -p "Enter an array: " -a natc
Enter an array: a b c d

echo "${natc[0]}"
a
echo "${natc[1]}"
b
echo "${natc[2]}"
c
echo "${natc[3]}"
d

echo "${#natc[@]}"
4