尝试保持简单的“计数和邮件”脚本运行

时间:2019-01-31 09:47:02

标签: bash

我正在尝试学习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

1 个答案:

答案 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