免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
41 [报告]
发表于 2006-06-28 17:01 |只看该作者
你好,我试了,代替了一下,程序好象还是有问题,应该是:
cat >/tmp/read.sh <<\EOF
#!/bin/sh
( sleep 5 ; kill $$; ) </dev/null &
read a
echo "$a"
kill $!
EOF
chmod +x /tmp/read.sh
./read.sh
var=a
rm -f /tmp/read.sh

这样改了后运行此程序反而对了一些,只是还有问题。你看看是这样吗?

论坛徽章:
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
42 [报告]
发表于 2006-06-28 17:16 |只看该作者
$()的副作用?还不太清楚,有时间看一下

论坛徽章:
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
43 [报告]
发表于 2006-06-28 17:19 |只看该作者
./read.sh是啥呢?
var=a为什么给var赋值字串"a"?

论坛徽章:
0
44 [报告]
发表于 2006-06-28 17:31 |只看该作者
./read.sh是指让read.sh来执行,否则使用了chmod +x /tmp/read.sh后,read.sh也没执行。var=a的意思是想使用read.sh中的a值,我知道这样表达也不对的,但是不知道怎么把a值给var,在后面的程序中要用到var,所以不知道怎么修改?

论坛徽章:
0
45 [报告]
发表于 2006-06-28 17:54 |只看该作者
哎,不行,我做的这个程序是说,在开发板启动过程中,启动到某一位置时,停下几秒钟,如果没有输入,则继续运行后面的程序,如果有输入,如果输入数字0,则继续运行后面的程序;如果输入数字1,则不运行后面的程序了,直接跳到命令输入符。改的程序文件是操作系统中的S30network_lan,如果在S30network_lan中加上下面的语句:
cat >/tmp/read.sh <<\EOF
#!/bin/sh
( sleep 5 ; kill $$; ) </dev/null &
read a
echo "$a"
kill $!
EOF
chmod +x /tmp/read.sh
./read.sh
var=a
rm -f /tmp/read.sh
则根本不行。tmp目录是在系统启动完全后才有的。试了以后也是不行。

论坛徽章:
0
46 [报告]
发表于 2006-06-28 17:56 |只看该作者
高手,请帮一下忙,这个应该怎么做?

论坛徽章:
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
47 [报告]
发表于 2006-06-28 20:30 |只看该作者
如果你的版本在run rc3.dxx前还没有mount /tmp
那么很遗憾,我想那不符合绝大多数人的习惯,俺不能在这个基础上思考问题
如果不是这样
如果你不愿意等5秒钟,那么用个临时文件
假设你要
#read前的代码
read -t5 var
#read后的代码

请将代码改为


#read前的代码
cat >/tmp/read.sh <<\EOF
#!/bin/sh
( sleep 5 ; kill $$; ) </dev/null &
read a
echo "$a"
kill $!
EOF
chmod +x /tmp/read.sh
/tmp/read.sh >/tmp/tmp.$$
read var </tmp/tmp.$$
rm -f /tmp/read.sh /tmp/tmp.$$

#read后的代码

1.红色的部分请完全照抄测试
2.俺已经没什么可以再帮你的了

论坛徽章:
0
48 [报告]
发表于 2006-06-29 11:20 |只看该作者
对不起,再次打扰你了,我把这些代码做成文件a,然后执行:
em86xx[/tmp]# ./a
1
Terminated
: cannot redirect shell command
em86xx[/tmp]# 1
1: not found
em86xx[/tmp]#

这是输入数子1后的执行结果,然后查看tmp 目录下的文件,read.sh,tmp.442都没有被删掉。在输入1后,也需要等5秒钟,感觉这不行吧!然后把这段代码放入我的S30network_lan文件中,这对后面的程序根本没起作用。你能解释一下吗?谢谢了!

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
49 [报告]
发表于 2006-06-30 11:59 |只看该作者
我的感觉也许是read的问题。请问楼主单独加入一个read 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
50 [报告]
发表于 2006-06-30 12:38 |只看该作者
输入1后回车了吗?

cat a是什么结果?

换个别的方法试试?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP