在bash中的无限循环期间禁用用户输入

发布于 2021-02-01 11:25:05

我有这个bash脚本,基本上可以启动带有进度指示器的Web和Selenium服务器。由于启动selenium服务器需要一些时间,因此我正在无限循环中检查状态。

问题是,在等待启动时​​,我不小心按下了键,该键显示在屏幕上,如果循环结束(超时),它也将显示在命令提示符下。

我想在循环内禁用所有用户输入(当然除了控制键):

start_selenium() {
    echo -n "Starting selenium server"
    java -jar ${selenium_jar} &> $selenium_log &

    # wait for selenium server to spin up! (add -v for verbose output)
    i=0
    while ! nc -z localhost 4444; do
        sleep 1
        echo -n "."
        ((i++))
        if [ $i -gt 20 ]; then
            echo
            echo -e $bg_red$bold"Selenium server connection timed out"$reset
            exit 1
        fi
    done
}
关注者
0
被浏览
120
1 个回答
  • 面试哥
    面试哥 2021-02-01
    为面试而生,有面试问题,就找面试哥。

    用于stty关闭键盘输入。

    stty -echo
    #### Ur Code here ####
    stty echo
    

    -echo关闭键盘输入并stty echo重新启用键盘输入。



推荐阅读
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看