簡単な通知アプリをbashで書こうとしています。mplayerからの出力を読み取り、解析して、notify-sendで表示したいと思います。
これを使用して、mplayerから必要な情報を取得できます。
mplayer <url> | grep ICY
次に、sedを使用して解析します。
名前付きパイプを作成し、mplayerにそれを書き込むように指示してから、それから読み取ります。残念ながら、それは機能しません。これが私のスクリプトです:
$fifo=~/.rp/fifo
mkfifo $fifo
mplayer <url> 2>/dev/null | grep ICY 1> $fifo &
while read line < $fifo; do
echo $line
done
wait
プログラムは$fifoからの入力を待ち続けます。このスクリプトの実行中に、他の端末でフォローしてみました。
走る
echo "Test" > .rp/fifo
スクリプトを実行している端末に「テスト」と表示される
走る
echo "ICY" | grep ICY > .rp/fifo
また動作します。
走る
mplayer <url> | grep ICY > .rp/fifo
そしてそれは動作しません。
私は上で言った、mplayerの組み合わせ| grepは正常に動作します。grep>$fifoは正常に機能します。なぜmplayerがわからない| grep>$fifoは機能しません。