当我的代码读取并显示我要检测的文件中的行时是否按下j
或k
键。这将增加或减少单词显示在屏幕上的速率。
我不知道该如何解决这个问题。我做了一些研究,我发现唯一的事情就是使用read
命令来监听用户的输入,但是在脚本执行时我如何始终监听read
命令?
我还找到了trap
命令,但我认为这只是为了结束程序?
我按下ctrl-c
时使用trap命令退出。是否可以使用trap命令来监听j
或k
键?
任何建议都将不胜感激
atm我有这段代码,但它并没有按照我需要的方式工作。脚本用法为:script file.txt [speed]
#!/bin/bash
trap end INT
file=$1
wpm=$2
input=$2
filecheck() {
#some code
}
initialspeed() {
#some code
}
fileread() {
#some code
}
display() {
#some code
}
end() {
#some code
}
#INCREASE OR DECREASE WPM SPEED
jk() {
input=$2
read -s -n 1 key
if [ "$key" == "k" ]
then
echo K HIT
exit
input=$input+10
wpm=$(bc <<< "scale=2;60/$input")
if [ "$input" -gt 1000 ]
then
wpm=0.06
fi
fi
if [ "$key" == "j" ]
then
echo J HIT
input=$input-10
wpm=$(bc <<< "scale=2;60/$input")
if [ "$input" -lt 100 ]
then
wpm=0.6
fi
fi
}
#CALL FUNCTIONS
echo
filecheck
initialspeed
fileread
jk #IM not sure where to call this function to make it listen all the time
display
编辑:这不是一个重复的问题,因为我的问题不是我需要读取输入而不等待按下回车键。我需要在脚本执行中的任何一点检测输入。我已经使用-n 1
只读了1个按键