首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以在Perl中监控LXTerminal(外壳)输出吗?

可以在Perl中监控LXTerminal(外壳)输出吗?
EN

Stack Overflow用户
提问于 2013-02-04 13:57:17
回答 1查看 100关注 0票数 0

我最近才开始学习Perl,所以当涉及到这门语言时,请原谅我缺乏技术词汇。

我有一个使用mpg321播放音频的Perl脚本。我有命令:

代码语言:javascript
复制
if(song is not being played)
{
     system("mpg321 song.mp3 &");
}

我想知道是否可以检查是否有正在播放的歌曲。一旦播放完一首歌曲,mpg321就会输出到终端。我的想法让我相信,如果我可以“监控”终端的输出:

0:00 song.mp3解码完成

我可以以某种方式将其放入if语句。如果有更简单的方法可以做到这一点,或者如果我提到的方法是可能的,我将非常感谢您的帮助!

EN

回答 1

Stack Overflow用户

发布于 2013-02-04 14:29:14

您可以打开执行管道并查看该管道的输出,如下所示:

代码语言:javascript
复制
my $pipe;
open $pipe, "mpg321 song.mp3 |";
while (my $line = <$pipe> {
    # check if mpg321 printed something...
}

但是,只有当您能够说服mpg321禁用控制台缓冲时,这才能起作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14681141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档