标签: bash blocking
我试图编写一个运行程序的脚本,等待程序的某个输出,然后继续执行(并使程序继续运行。) 我目前的代码似乎没有输出任何东西,sed永远不会返回true。 这个回声" Peerflix开始了#34;但那就是它。
exec 3< <(peerflix $1 -p 8888) echo "Peerflix started." sed '/server$/q' <&3 echo 'Matched'
答案 0 :(得分:1)
使用pipes!
使用mkfifo创建管道,并在非阻塞命令中将程序的输出流式传输给它。然后使用阻止sed从该管道中读取。
mkfifo
sed
有点像(没有测试 - 我没有peerflix):
peerflix
mkfifo myfifo peerflix $1 -p 8888 > myfifo & echo "Peerflix started." sed '/server$/q' myfifo echo 'Matched' rm myfifo