我正在尝试学习bash脚本,并在网上找到了一些正在编辑的脚本。我的目标是:让脚本每10分钟检查一次网页,以查看是否存在特定字词:是否存在;一切都很好,请在10分钟内再次检查。
如果单词丢失或网页未加载:发送一封简单的电子邮件,然后在10分钟内再次检查
以下脚本似乎可以完成工作,但是当单词丢失并发送电子邮件时,它将停止。
我确定我已经接近了,但是有人可以帮忙吗? :)
#!/bin/bash
while [ 1 ];
do
count=`curl -s "MyURL" | grep -c "MyWORD"`
if [ "$count" = "0" ]
then
echo "MyMAILBODY" | mail -s "MyMAILSUBJECT" MyFROMADDRESS
exit 0
fi
sleep 600
done
答案 0 :(得分:0)
这是一个重构,其中删除了exit 0
,并修复了一些反模式。
#!/bin/bash
# [ 1 ] happens to work but is silly
# -- it means "if 1 is not an empty string"
while true;
do
# No need to figure out how many matches exactly
# if all you care about is whether or not the word occurs.
# Also no good reason to put the result in a variable.
if ! curl -s "MyURL" | grep -q "MyWORD"
then
echo "MyMAILBODY" | mail -s "MyMAILSUBJECT" MyFROMADDRESS
fi
sleep 600
done