文字列「ABCD」とファイルtest.txtがあります。ファイルにこのコンテンツ「ABCD」のみが含まれているかどうかを確認したい。通常、「ABCD」のみを含むファイルを取得し、この文字列以外の何かを取得したときに電子メール通知を送信したいので、この状態を確認します。助けてください!
更新:私の元の答えは、一致する可能性がない場合、不必要に大きなファイルをメモリに読み込みました。複数行のファイルは失敗するため、せいぜい2行読み取るだけで済みます。代わりに、最初の行を読みます。文字列と一致しない場合、または読み取る内容に関係なく、2番目の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
このようなものはうまくいくはずです:
s="ABCD"
if [ "$s" == "$(cat test.txt)" ] ;then
:
else
echo "They don't match"
fi
str="ABCD"
content=$(cat test.txt)
if [ "$str" == "$content" ];then
# send your email
fi
if [ "$(cat test.tx)" == ABCD ]; then
# send your email
else
echo "Not matched"
fi