如何在bash中读取字符串数组

Ena*_*san 0 arrays bash user-input input

我是一个新bash学习者.我想知道,如何从标准输入中获取字符串列表?在取完所有字符串之后,我想将它们打印出来.

说输入如下:

Namibia
Nauru
Nepal
Netherlands
NewZealand
Nicaragua
Niger
Nigeria
NorthKorea
Norway
Run Code Online (Sandbox Code Playgroud)

输出应该是:

Namibia Nauru Nepal Netherlands NewZealand Nicaragua Niger Nigeria NorthKorea Norway
Run Code Online (Sandbox Code Playgroud)

我只能读取变量bash,然后可以像下面这样打印:

read a
echo "$a"
Run Code Online (Sandbox Code Playgroud)

请注意:

这个问题没有回答我的问题.它主要是遍历声明的数组.但我的情况是处理输入并在运行时追加数组以及检测EOF

Tom*_*ech 5

您可以read在带有bash数组的循环中使用:

countries=()
while read -r country; do
    countries+=( "$country" )
done
echo "${countries[@]}"
Run Code Online (Sandbox Code Playgroud)

如果以交互方式使用,Ctrl- d终止循环,否则它将在read失败后终止(例如在EOF处).每个国家/地区都印在同一条线上.