免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 唯尔奇
打印 上一主题 下一主题

在开发板上运行read -t 5 key为什么出现错误? [复制链接]

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
31 [报告]
发表于 2006-06-28 09:39 |只看该作者
我所能提供的帮助都在23楼了

论坛徽章:
0
32 [报告]
发表于 2006-06-28 09:57 |只看该作者
busybox里的选项如sleep在开发板上运行时能用,但是加上read就停止,如下面的语句:
sleep 5
read key
这样的语句会无限等待下去。但是如果只用sleep 5语句,还是会等待5秒,但是如何把sleep与read结合起来呢?让如果没有字符输入时,等待5秒后就能继续运行后面的语句?

[ 本帖最后由 唯尔奇 于 2006-6-28 10:04 编辑 ]

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
33 [报告]
发表于 2006-06-28 10:02 |只看该作者
内核的RTC实时时钟是否有问题,或者开发板上没有RTC?

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
34 [报告]
发表于 2006-06-28 10:09 |只看该作者
sleep 5
read key
如果你输入了一些内容还会无限等待么?

如果不会,请仔耐心看一下23楼的回复

论坛徽章:
0
35 [报告]
发表于 2006-06-28 10:29 |只看该作者
( sleep 5 ; kill $$; ) </dev/null &    这句话不明白是什么意思。你能解释一下吗?谢谢

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
36 [报告]
发表于 2006-06-28 10:35 |只看该作者
脚本过5秒自杀
建议读新手导航

论坛徽章:
0
37 [报告]
发表于 2006-06-28 13:33 |只看该作者
我现在运行的是下面的程序:
#! /bin/sh
vcd=`find /dev|grep scsi|grep cd`
t=1 ;
menutrue=0;
key=0
(sleep 5 ; kill $$; ) </dev/null &
read key
echo "$key"
#kill $!
case "$key" in
  0) break;;
  1) menutrue=1;exit;;
esac

if [ $menutrue -eq 0 ];then
for name1 in $vcd
do
    mkdir /tmp/cd"$t"
    mount -t udf $name1 /tmp/cd"$t" >/dev/null
    if [ $? != 0 ]; then
        mount -t iso9660 $name1 /tmp/cd"$t" >/dev/null
    fi
    t=`expr $t + 1`
done
else
exit
fi
运行后出现了几个问题:
不管输入不输入数字,总会停止5秒。我要做的是如果输入一个数字如0,则应该立即执行下面的程序。可是现在输入0,却等待5秒后直接就Terminated了,下面的程序都没执行了。如果输入数字1,也是停止5秒后就
Terminated了。这应该怎么办呢?

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
38 [报告]
发表于 2006-06-28 13:40 |只看该作者
(sleep 5 ; kill $$; ) </dev/null &
read key
echo "$key"
kill $!
这些是写到另一个脚本中调用的
用这个脚本来代替你原来想用的read -t

你明白了吗?

如果不表明请对比23楼的用法

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
39 [报告]
发表于 2006-06-28 13:48 |只看该作者
在你原来的代码中如果有这个read命令
read -t 5 var

那么就用下面的代码去代替read -t5 var命令


  1. cat >/tmp/read.sh <<\EOF
  2. ( sleep 5 ; kill $$; ) </dev/null &
  3. read a
  4. echo "$a"
  5. kill $!
  6. EOF
  7. chmod +x /tmp/read.sh
  8. var=$(/tmp/read.sh)
  9. rm -f /tmp/read.sh
复制代码

[ 本帖最后由 waker 于 2006-6-28 13:49 编辑 ]

论坛徽章:
0
40 [报告]
发表于 2006-06-28 14:19 |只看该作者
这样代替以后,如果输入数和不输入数都要等5秒,是吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP