在无限循环中读取bash中的输入并对其作出反应
所以我想等待1秒,等待一些输入(稍后将实现的选项)。 或者我希望程序打印一些东西(稍后也将实现)。我遇到了一个问题,在尝试读取函数的1个字符时,我的代码如下:在无限循环中读取bash中的输入并对其作出反应,bash,loops,input,Bash,Loops,Input,所以我想等待1秒,等待一些输入(稍后将实现的选项)。 或者我希望程序打印一些东西(稍后也将实现)。我遇到了一个问题,在尝试读取函数的1个字符时,我的代码如下: while true do read $var -t 1 case $var in ("h") help ;; esac done 如果我在案例之后尝试回显,程序确实会等待1秒,问题是它无法识别我的h输入,我将如何修复它?我已稍微修
while true
do read $var -t 1
case $var in
("h")
help
;;
esac
done
如果我在案例之后尝试回显,程序确实会等待1秒,问题是它无法识别我的h输入,我将如何修复它?我已稍微修改了您的示例,使其正常工作。read语句中有错误。使用
read var
而不是read$var
。此校正样本现在也将识别h
输入
关于你的问题,为什么它不等待第二个(顺便说一句,很难确定,所以我增加了一点超时;-)?这是因为当您输入内容时,读取超时被中断。它与参数名相同,表示用户输入超时。因此,如果用户输入的东西超时被中断
#!/bin/bash
while true
do
echo 'wait for input ...'
read -t 10 var
echo 'got input ...'
case $var in
h)
echo 'help'
;;
esac
done
谢谢,这是学校的作业,它需要列出当前进程的信息并每秒刷新一次,还需要根据您按某些键来更改输出