これは単純なものでなければならないことはわかっていますが、私はそれを見ていません。SpeakerList.txt
データベース内のスピーカーの一連の単一行を含むファイル があります。new.trs
データベースのスペース区切りバージョンを保持します。データベースでスピーカーが見つかったことを確認する必要があるためgrep
、スピーカー名で始まる for 行を実行しています。次のコードは常にif
、すべてのスピーカーに対してトリガーする最後のステートメントになります。ファイルの存在をチェックする同様のコードがあり、問題なく動作します。私は何が欠けていますか?ループが実行されていることはわかっています — デバッグ行grep
で試しました。echo
また、フィールドを印刷してみ$speakerFound
て、「見つかった」とマークされていることを示すステートメントがある場合でも、最後に実際に空白であることを確認しました
for i in `cat SpeakerList.txt`
do
speakerFound=""
echo "Speaker: $i"
grep "^$i" ~/work/new.trs | while read line
do
fileName=`echo $line | cut -d' ' -f 2`
speakerFound="found"
break
done
if [ "$speakerFound" == "" ]; then
echo "$i not found in database."
fi
done