readarray 关键字终止值
readarray keyword stop value
我的目标是将用户输入读取到一个数组中,以便以后在 bash 脚本中使用。它的工作原理是获取用户输入并将其放入数组中,但前提是用户知道按 CTRL+D 来终止 readarray 命令。
有没有办法告诉读取数组在遇到特定关键字(如 "done" 或 "end" 时停止读取输入行?
我已经尝试寻找终止命令的方法,但我是 bash 的新手,所以我不确定 while/for 循环是否可行,例如:
echo Type 'done' when finished
while true
do
readarray -t serverlist
if [ "$LINE" = "done" ]
then
false
fi
done
readarray
将读取其所有标准输入,包括 done
或 end
等任何标记,然后您才有机会对其进行测试。您必须使用 read
逐行读取输入,并自行将每个适当的行附加到数组。
echo 'Print "done" when finished'
while IFS= read -r line; do
[[ $line = done ]] && break
serverlist+=("$line")
done
我的目标是将用户输入读取到一个数组中,以便以后在 bash 脚本中使用。它的工作原理是获取用户输入并将其放入数组中,但前提是用户知道按 CTRL+D 来终止 readarray 命令。
有没有办法告诉读取数组在遇到特定关键字(如 "done" 或 "end" 时停止读取输入行?
我已经尝试寻找终止命令的方法,但我是 bash 的新手,所以我不确定 while/for 循环是否可行,例如:
echo Type 'done' when finished
while true
do
readarray -t serverlist
if [ "$LINE" = "done" ]
then
false
fi
done
readarray
将读取其所有标准输入,包括 done
或 end
等任何标记,然后您才有机会对其进行测试。您必须使用 read
逐行读取输入,并自行将每个适当的行附加到数组。
echo 'Print "done" when finished'
while IFS= read -r line; do
[[ $line = done ]] && break
serverlist+=("$line")
done