免费注册 查看新帖 |

Chinaunix

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

perl能这样处理吗? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-01-31 17:13 |只看该作者
原帖由 Nosferatu 于 2008-1-31 16:38 发表
use fork to spawn a new process
and try exec "rxvt -e \"tail file\"" in your child process

rxvt can be replaced with any terminal you like


#!/usr/bin/perl

while(1){
print "please input :\n";
my $line=<>;
chop($line);
if ($line eq "ok"){
#system("tail /etc/passwd");

my $forks=fork();
&kan;
}
}
sub kan {
exec("gnome-terminal -e \"tail /etc/passwd\"");
}


一闪而过什么都看不清楚.面且还退出了while.
我不太会fork不知道这样对不对?

论坛徽章:
0
12 [报告]
发表于 2008-01-31 19:32 |只看该作者
原帖由 mousejsh 于 2008-1-31 17:13 发表


#!/usr/bin/perl

while(1){
print "please input :\n";
my $line=;
chop($line);
if ($line eq "ok"){
#system("tail /etc/passwd");

my $forks=fork();
&kan;
}
}
sub kan {
exec("gnome- ...

改成这样

  1. #!/usr/bin/perl

  2. while(1){
  3. print "please input :\n";
  4. my $line=<>;
  5. chop($line);
  6. if ($line eq "ok"){
  7. #system("tail /etc/passwd");

  8. my $forks=fork();
  9. die "fail to fork" unless defined $forks;
  10. if($forks){
  11. }   #parent do nothing
  12. else{
  13. &kan; #let the child do the dirty work
  14. }
  15. }
  16. }
  17. sub kan {
  18. exec("xterm -e  \"tail /etc/passwd;read one \"");
  19. }

复制代码

让child去exec,parent继续while循环
至于那个一闪而过是因为gnome-terminal命令已经执行完了
可以在后面加一条 read one 命令,这样只有你回车了窗口才会消失
gnome-terminal没有试验成功
不过用xterm倒是成功了,窗口停住了

[ 本帖最后由 churchmice 于 2008-1-31 19:41 编辑 ]

论坛徽章:
0
13 [报告]
发表于 2008-01-31 21:58 |只看该作者
churchmice
哥们,你运行后在xterm里有内容吗?我怎么用你的代码运行后是一空的xterm?回车退出不了(不过没有关系,可以Ctrl+C来退出)。
我在一个blog上看到可以这样来暂停gnome-terminal
exec("gnome-terminal -e \"sleep 999999\"");
可是不知道怎么样才能显示tail /etc/passwd

论坛徽章:
0
14 [报告]
发表于 2008-01-31 22:27 |只看该作者
原帖由 mousejsh 于 2008-1-31 21:58 发表
churchmice
哥们,你运行后在xterm里有内容吗?我怎么用你的代码运行后是一空的xterm?回车退出不了(不过没有关系,可以Ctrl+C来退出)。
我在一个blog上看到可以这样来暂停gnome-terminal
exec("gnome-ter ...


我用的是debian
实验室的redhat上也实验过了
没有问题

论坛徽章:
0
15 [报告]
发表于 2008-01-31 23:05 |只看该作者
我用的是redhat as4 -u3

论坛徽章:
0
16 [报告]
发表于 2008-01-31 23:15 |只看该作者
很奇怪
要不站短ip和用户名俺ssh过来看看

论坛徽章:
0
17 [报告]
发表于 2008-01-31 23:20 |只看该作者
我是在家里上网adsl没有公网IP。

论坛徽章:
0
18 [报告]
发表于 2008-01-31 23:21 |只看该作者
我直接用的就是你给修改的哪个代码运行的。
有MSN什么的吗?以后好向你学习呀!我在北京打工.

论坛徽章:
0
19 [报告]
发表于 2008-01-31 23:29 |只看该作者

回复 #18 mousejsh 的帖子

leenux@live.com

实验室的
Red Hat Enterprise Linux AS release 3 (Taroon)
上要把read one 改成sleep 10才不会窗口一闪就消失
怀疑是xterm的原因
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP