我知道这一定很简单,但我只是没有看到它。我们有一个文件 ,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