Bash - catch the output of a command -


i trying check output of command , run different commands depending on output.

count="1" f in "$@";    base=${f%.*} #    if [ -e "${base}_${suffix}_${suffix2}.mp4" ];     echo -e "reading gps metadata using mediainfo file ${count}/${#@} "$(basename "${base}_${suffix}_${suffix2}.mp4")"    mediainfo "${base}_${suffix}_${suffix2}.mp4" | grep "©xyz" | head -n 1     if [[ $? != *xyz* ]];     echo -e "warning!!! no gps information found! file ${count}/${#@} "$(basename "${base}_${suffix}_${suffix2}.mp4")" || exit 1     fi     ((count++)) done 

mediainfo command checking output of. if video file has "©xyz" atom written output looks this:

$ mediainfo file | grep "©xyz" | head -n 1 $ ©xyz                                     : +60.9613-125.9309/ $ 

otherwise null

$ mediainfo file | grep "©xyz" | head -n 1 $ 

the above code not work , echos warning when ©xyz presented. ideas of doing wrong?

the syntax using capture output of mediainfo command plain wrong. when using grep can use return code (the output of $?) directly in if-conditional

if mediainfo "${base}_${suffix}_${suffix2}.mp4" | grep -q "©xyz" 2> /dev/null;  .. 

the -q flag in grep instructs run command silently without throwing results stdout, , part 2>/dev/null suppresses errors thrown via stderr, if-conditional pass when string present , fail if not present


Comments

Popular posts from this blog

Command prompt result in label. Python 2.7 -

javascript - How do I use URL parameters to change link href on page? -

amazon web services - AWS Route53 Trying To Get Site To Resolve To www -