尝试使用stdbuf
和unbuffer
的几个变体来解析shell脚本中的mplayer
(在我的情况下也是libdvdnav
)输出后,我没有找到工作方案。这是我的shell脚本,没有解析输出的部分 - 它只是在每一行上运行echo。
#!/bin/bash
IN=video.iso
OUT=video.mpg
IFS=$'\n'
for line in `stdbuf -oL -eL mplayer -msglevel identify=6 -dumpstream -dumpfile $OUT dvdnav://1/$IN 2>&1`; do
echo "mplayer: $line"
done
即使使用stdbuf
,输出也会被缓冲,因此我无法实时解析每一行。有没有办法在使用mplayer
目标时捕获dvdnav
输出?