LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 872|回复: 4

请问如何实现这个多进程?

[复制链接]
发表于 2004-5-23 16:56:08 | 显示全部楼层 |阅读模式
请问如何实现这个多进程?

目的,让用户响应屏幕输入,超过多少时间没有响应则程序自动退出。
#!/bin/bash

{
N=1
while [ $N -le 500 ]
do
N= ` expr $N + 1 `
done
} &
fg %+
#想用这种方式来作为计时,放在后台自动运行,不知是否可行? 如果用sleep是

不是好些?运行时程序提示fg出错,找不到对应的进程。

echo please input your codes
read Input
#一执行到read,程序总是停下来等待输入,怎么办? 又不能把read放到后台。
echo $Input

还有,有没有办法实现后台程序和前台程序之间的通信?
发表于 2004-5-23 17:01:20 | 显示全部楼层
延迟?
 楼主| 发表于 2004-5-23 17:06:34 | 显示全部楼层
对呀,比如说在一分钟之内等待用户输入,如果说一分钟内没有键盘输入响应的话,程序自动退出的那种。
发表于 2004-5-23 18:57:35 | 显示全部楼层
其实你想要的是接收键盘输入的功能,这就意味着必然有一个进程在进行终端IO阻塞,于是就没有必要创建一个新的子进程来进行计时了,这样不但消耗进程资源,而且也增加了编程的难度。

read -t TIMEOUT # read命令本身有超时的选项

ps:
1.关于bash的内置命令如read,exec,man bash来查看其对应的man手册
2.这类程序最好使用C来写,改变termios来精确控制终端特性,我在程序版区有论述,请参阅。
发表于 2004-5-23 22:32:09 | 显示全部楼层
教主说的对!,口可口可,咱们shell版里有现成的例子,请善用搜索
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表