我有一个bash函数可以获取2个目录中的文件并将它们附加到文件中,我还有一个if
语句来检查文件名是否已经存在。如果它不存在,请写下来。但检查似乎不起作用,因为我可以看到两次写入的文件名。
这是我的功能。
function getFiles {
for entry in "$outputDir"/*
do
if ! grep -Fxq "$entry" $rlog
then
echo ${entry##*/} >> $rlog
else
printf "\n filename exists \n"
fi
done
for files in "$dataCopy"/*
do
if ! grep -Fxq "$files" $rlog
then
echo ${files##*/} >> $rlog
else
printf "\n filename exists \n"
fi
done
}
答案 0 :(得分:1)
由于您使用grep -x
或完全匹配,检查失败。
这是因为您的grep
命令正在使用以下命令检查日志文件中的$entry
:
grep -Fxq "$entry" $rlog
但您实际上是使用
将${entry##*/}
写入输出日志
echo ${entry##*/} >> $rlog