我不会提供确切的代码,只提供重要的内容。
while :; do
read -sn 1 foo
done
如果按下按钮,光标将停止闪烁(这可能意味着它正在处理所有字符(。而且,它有一堆键,它必须经历所有这些才能继续闪烁,这意味着它正在等待输入(我认为(
如何防止这种情况发生?
我不知道我是否解释得足够好,我希望你能理解我的问题。
您忘记为退出条件定义一个测试,即成功捕获字符,所以。。。如果您按住该键,您将收集多个字符,直到键盘缓冲区强制输出(长流(,但它仍在循环,直到您终止脚本/命令。
#!/bin/bash
while :; do
read -sn 1 foo
if [ $? -eq 0 ] ; then break ; fi
done
echo "Out - character = ${foo}"