#!/bin/bash WAVS_PATH=$1 ERR_CNT=0 PREFIX_LOG="/tmp/check_logs" TMP_STAT_LOG="tmp_stat.log" TMP_STATS_LOG="tmp_stats.log" STAT_LOG="stat.log" STATS_LOG="stats.log" RESULT_LOG="result.log" echo "WAVS_PATH: $WAVS_PATH" check_prepare() { if [ -n "$PREFIX_LOG" ]; then TMP_STAT_LOG="$PREFIX_LOG/$TMP_STAT_LOG" TMP_STATS_LOG="$PREFIX_LOG/$TMP_STATS_LOG" STAT_LOG="$PREFIX_LOG/$STAT_LOG" STATS_LOG="$PREFIX_LOG/$STATS_LOG" RESULT_LOG="$PREFIX_LOG/$RESULT_LOG" mkdir -p $PREFIX_LOG else echo "PREFIX_LOG is empty" fi rm $TMP_STAT_LOG -f rm $TMP_STATS_LOG -f rm $STAT_LOG -f rm $STATS_LOG -f echo "there is no error on test loopback" > $RESULT_LOG } # There is don't need to add function keyword on busybox shell check_wav() { wav=$1 threshold_db=-15 echo "will check wav: $wav with threshold_db: $threshold_db" sox $wav -n stat 2> $TMP_STAT_LOG sox $wav -n stats 2> $TMP_STATS_LOG echo "======== $wav stat info: ========" >> $STAT_LOG cat $TMP_STAT_LOG >> $STAT_LOG echo >> $STAT_LOG echo "======== $wav stats info: ========" >> $STATS_LOG cat $TMP_STATS_LOG >> $STATS_LOG echo >> $STATS_LOG l_pk=`awk 'NR==5{ printf "%.2f", $5 }' $TMP_STATS_LOG` r_pk=`awk 'NR==5{ printf "%.2f", $6 }' $TMP_STATS_LOG` echo "l_pk: $l_pk, r_pk: $r_pk" last_err=$ERR_CNT ERR_CNT=$(echo $l_pk $threshold_db $ERR_CNT | awk '{ if ($1 > $2) { $3+=1; } } END { printf "%d", $3; }') if [ $last_err != $ERR_CNT ]; then echo "ERROR! $wav Left Pk lev dB: $l_pk > $threshold_db" >> $RESULT_LOG else echo "OK! $wav Left Pk lev dB: $l_pk < $threshold_db" >> $RESULT_LOG fi last_err=$ERR_CNT ERR_CNT=$(echo $r_pk $threshold_db $ERR_CNT | awk '{ if ($1 > $2) { $3+=1; } } END { printf "%d", $3; }') if [ $last_err != $ERR_CNT ]; then echo "ERROR! $wav Right Pk lev dB: $r_pk > $threshold_db" >> $RESULT_LOG else echo "OK! $wav Right Pk lev dB: $r_pk < $threshold_db" >> $RESULT_LOG fi echo "total ERR_CNT: $ERR_CNT" #cat $TMP_STATS_LOG | while read line #do # echo "line: $line" # label=`echo $line | awk '{ print $1 }'` # echo "label: $label" #done } check_start() { cd $WAVS_PATH check_prepare for file in `ls $WAVS_PATH` do if [ -f $file ]; then # echo "found file: $file" suffix=$(echo "$file" | cut -d . -f2) # echo "found suffix: $suffix" if [ $suffix == "wav" ]; then # echo "found wav file: $file" check_wav $file fi fi done } check_start