我知道这个问题已经被问过并回答过,但我找到的解决方案会侦听空间并输入:
while [ "$key" != '' ]; do
read -n1 -s -r key
done
Run Code Online (Sandbox Code Playgroud)
有没有办法(在bash 中)制作一个只等待空格键的脚本?
我想知道在我的键盘上按下了哪些键并将信息打印到标准输出。
可以做到这一点的工具是showkey. 但是,如果我想将数据传递showkey给read:
while read line; do
echo "$line" | otherprog
done <`showkey -a`
Run Code Online (Sandbox Code Playgroud)
或者
showkey -a | while read line; do
echo "$line" | otherprog
done
Run Code Online (Sandbox Code Playgroud)
然后showkey等待,直到输入了 140 个字符的总和,然后将缓冲的信息发送到read。
showkey -a 逐行打印按下的键,没有任何缓冲。
showkey真正逐行读取的输出?showkey吗?read?我使用了lornix的解决方案并将其包含在我的简单键盘键盘中:D!
stdbuf -o0 showkey -a | while read line; do
perl -e 'print sprintf "%030s\n",shift' "$line" | aplay &> /dev/null &
done
Run Code Online (Sandbox Code Playgroud)
镭射版: …