如果出现数字范围,则发送邮件

时间:2014-10-05 04:21:30

标签: bash email

我在这里读过这个bash脚本:

Bash send mail only if file contains string

但它不测试数值:

if fgrep ERROR /home/user/one-number.txt; then
mail -s 'Import Error Log' admins
fi

这几乎可以满足我的需求,但我只需要发送one-number.txt包含一个大于270或小于90的数字,我需要发送给大量人员。

不需要Bash。 Php,python,perl也可以工作。

我试过这个,但它似乎不起作用:

subject="Alert";
i=$(cat file_with_1_number.txt) ;
if [$i > 269 && $i < 361  ||  $i > 0 && $i < 91; then
mail -s $subject admin@example.com < file.txt;
fi

1 个答案:

答案 0 :(得分:0)

你的最后一次尝试并不太远。这有效:

subject="Alert"
i=$(cat file_with_1_number.txt)
if (( $i > 269 && $i < 361 )) || (( $i > 0 && $i < 91 ))
then
  mail -s $subject admin@example.com < file.txt
fi

((..))用于告诉bash它是一个算术表达式(因为你使用的是算术表达式)。当您一次检查多个范围时,分组也很重要。