我是一名新的bash
学员。我想知道,如何从标准输入中获取字符串列表?在取完所有字符串之后,我想将它们分开打印。
说输入如下:
Namibia
Nauru
Nepal
Netherlands
NewZealand
Nicaragua
Niger
Nigeria
NorthKorea
Norway
输出应该是:
Namibia Nauru Nepal Netherlands NewZealand Nicaragua Niger Nigeria NorthKorea Norway
我只能在bash
中读取变量,然后可以按以下方式打印:
read a
echo "$a"
请注意:
This question没有回答我的问题。它主要是遍历声明的数组。但我的情况是处理输入并在运行时附加数组以及检测
EOF
答案 0 :(得分:5)
您可以在带有bash数组的循环中使用read
:
countries=()
while read -r country; do
countries+=( "$country" )
done
echo "${countries[@]}"
如果以交互方式使用, Ctrl - d 会终止循环,否则会在read
失败后终止(例如在EOF处)。每个国家/地区都印在同一条线上。
答案 1 :(得分:1)
假设您的列表是一个文件(您可以随时保存到文件中):
my_array=( $(<filename) )
echo ${my_array[@]}
从标准输入:
while :
do
read -p "Enter something: " country
my_array+="country"
done