在脚本运行时检查用户是否键入了某些内容

时间:2018-10-28 16:37:19

标签: bash shell unix sh

我必须编写一个脚本,每三秒钟打印一次用户或系统使用的CPU百分比。如果用户键入特定的字符串,则输出必须来回切换。

如何在不中断输出流的情况下检查输入? 读取命令会阻止它,我的想法已经用完了。

2 个答案:

答案 0 :(得分:0)

您可以通过创建文件轻松地将信息获取到脚本中。听起来您的程序有一个循环并进入了睡眠状态。为什么不检查文件是否存在?

 <input type="text" id="orangeDateOfBirthForm" name="orangeDateOfBirthForm" class="form-control validate" required>
 <label data-error="wrong" data-success="right" for="orangeForm-email">Date of Birth</label>

答案 1 :(得分:0)

您可以将read命令与超时选项read -t一起使用。例如,以下脚本检测字符串'cc'。您还可以指定要用-N读取的字符数,这样用户就不必按Enter键。

flag=0
while true; do
    sleep 3
    if [[ $flag -eq 0 ]];then
      echo user
    else
      echo sys
    fi
    read -t 0.25 -N 2 input
    if [[ $input = "cc" ]] ; then
       [[ $flag -eq 0 ]] && flag=1 || flag=0
    fi
done