6

我有一个字符串“ABCD”和一个文件 test.txt。我想检查文件是否只有这个内容“ABCD”。通常我只得到带有“ABCD”的文件,当我得到除此字符串之外的任何其他内容时,我想发送电子邮件通知,因此我想检查这种情况。请帮忙!

4

4 回答 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 回答