我的目标是将用户输入读入数组,以便以后在bash脚本中使用。它可以在用户输入并将其放入数组中,但前提是用户知道按CTRL + D以终止readarray命令。
有没有告诉读取数组在输入特定关键字后会停止读取输入行,例如" done"或者"结束"?
我已经尝试了查找终止命令的方法,但我不熟悉bash,所以我不确定这是否可以使用while / for循环,例如:
echo Type 'done' when finished
while true
do
readarray -t serverlist
if [ "$LINE" = "done" ]
then
false
fi
done
答案 0 :(得分:1)
readarray
将会在您有机会测试之前阅读所有标准输入,包括done
或end
之类的标记。您必须逐行读取输入行read
,并自行将每个相应的行附加到数组中。
echo 'Print "done" when finished'
while IFS= read -r line; do
[[ $line = done ]] && break
serverlist+=("$line")
done