【问题标题】:Condition to check if a command printed something to stdout检查命令是否将某些内容打印到标准输出的条件
【发布时间】:2021-10-08 19:42:40
【问题描述】:

我正在尝试创建一个循环,如果使用以下命令将某些内容打印到标准输出,它将返回通过或失败。如果视频有音频,该命令将在屏幕上打印信息,如果没有,则不会打印任何内容。目前,循环仅在音频和非音频文件上打印传递。有没有办法将条件设置为 stdout 并确定是否打印了某些内容?

ffprobe -i INPUT -show_streams -select_streams a -loglevel error >/dev/null
if [ $? == 0 ]
then    
    echo pass
else
    echo fail
fi

【问题讨论】:

    标签: bash if-statement ffmpeg


    【解决方案1】:

    将输出保存在变量中,而不是将其重定向到/dev/null,然后测试输出是否为空。

    out=$(ffprobe -i INPUT -show_streams -select_streams a -loglevel error)
    if [ -n "$out" ]
    then    
        echo pass
    else
        echo fail
    fi
    

    【讨论】:

      猜你喜欢
      • 2022-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-01
      • 2014-09-05
      • 2012-06-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多