在Bash中,可以使用以下方法在按下任意键的情况下结束无限循环:
while true; do
# 无限循环的代码
read -rsn1 -t 1 key
if [[ -n "$key" ]]; then
break
fi
done
解释:
read -rsn1 -t 1 key
:读取用户输入的单个字符,并将其赋值给变量key
。-r
选项用于禁用反斜杠转义,-s
选项用于禁止显示输入字符,-n1
选项用于只读取一个字符,-t 1
选项用于设置读取超时时间为1秒。if [[ -n "$key" ]]; then
:使用if语句判断变量key
是否为空。如果不为空,则表示用户按下了任意键,执行break
语句结束循环。trap 'break' SIGINT
while true; do
# 无限循环的代码
done
解释:
trap 'break' SIGINT
:使用trap命令捕获SIGINT信号(即用户按下Ctrl+C键),并在信号触发时执行break
语句结束循环。以上两种方法都可以实现在按下任意键的情况下结束无限循环。具体选择哪种方法取决于你的需求和代码结构。
领取专属 10元无门槛券
手把手带您无忧上云