我有一个字符串“ABCD”和一个文件 test.txt。我想检查文件是否只有这个内容“ABCD”。通常我只得到带有“ABCD”的文件,当我得到除此字符串之外的任何其他内容时,我想发送电子邮件通知,因此我想检查这种情况。请帮忙!
问问题
38776 次
4 回答
21
更新:我的原始答案会在不可能匹配时将一个大文件不必要地读入内存。任何多行文件都会失败,因此您最多只需要读取两行。相反,请阅读第一行。如果它不匹配字符串,或者如果第二次read
成功,无论它读取什么,然后发送电子邮件。
str=ABCD
if { IFS= read -r line1 &&
[[ $line1 != $str ]] ||
IFS= read -r $line2
} < test.txt; then
# send e-mail
fi
只需读入整个文件并将其与字符串进行比较:
str=ABCD
if [[ $(< test.txt) != "$str" ]]; then
# send e-mail
fi
于 2016-08-31T21:59:39.890 回答
11
像这样的东西应该工作:
s="ABCD"
if [ "$s" == "$(cat test.txt)" ] ;then
:
else
echo "They don't match"
fi
于 2016-08-31T22:01:47.727 回答
7
str="ABCD"
content=$(cat test.txt)
if [ "$str" == "$content" ];then
# send your email
fi
于 2016-09-01T03:07:10.103 回答
1
if [ "$(cat test.tx)" == ABCD ]; then
# send your email
else
echo "Not matched"
fi
于 2018-12-18T10:00:26.763 回答