2013-02-04 54 views
0

我剛剛開始學習Perl,所以請原諒我在這門語言方面缺乏技術詞彙。是否可以在Perl中監視LXTerminal(shell)輸出?

我有一個使用mpg321播放音頻的Perl腳本。我有命令:

if(song is not being played) 
{ 
    system("mpg321 song.mp3 &"); 
} 

我想知道是否有可能以檢查是否已經有正在播放一首歌曲。 mpg321在播放完歌曲後輸出到終端。我的思路讓我相信,如果我能「監視」的輸出端子:

[0:00] Song.mp3的譯碼完成

我可以將它放入if語句不知何故。如果有一個更簡單的方法來做到這一點,或者如果我提到的這種方法是可能的,我會非常感謝幫助!

回答

0

您可以打開運算流水線,並觀察從這個管道輸出,類似於:

my $pipe; 
open $pipe, "mpg321 song.mp3 |"; 
while (my $line = <$pipe> { 
    # check if mpg321 printed something... 
} 

但如果你能說服mpg321禁用控制檯緩衝這隻會工作。

相關問題