在bash脚本执行时如何检测用户的输入?

时间:2015-04-16 18:02:24

标签: bash input

当我的代码读取并显示我要检测的文件中的行时是否按下jk键。这将增加或减少单词显示在屏幕上的速率。

我不知道该如何解决这个问题。我做了一些研究,我发现唯一的事情就是使用read命令来监听用户的输入,但是在脚本执行时我如何始终监听read命令?

我还找到了trap命令,但我认为这只是为了结束程序? 我按下ctrl-c时使用trap命令退出。是否可以使用trap命令来监听jk键?

任何建议都将不胜感激

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个按键

0 个答案:

没有答案