我如何编写一个shell脚本,如果文件不为空,它将通过电子邮件发送给我一个文件?

时间:2009-07-23 04:29:48

标签: bash email shell

我正在寻找一个可以运行的脚本来检查文本文件是否为空,如果它什么也没做,除非它有内容,我希望它向我发送一封包含文本文件的电子邮件信息。不知道怎么做。

4 个答案:

答案 0 :(得分:4)

例如:

test -s your_file && mutt -a your_file -s "Sending you a file" you@world.com

这会将文件作为附件发送。如果要在邮件正文中包含该文件,可以使用-i开关而不是-a。如果您没有安装Mutt,可以致电mail

test -s your_file && mail -s "Sending you a file" you@world.com < your_file

答案 1 :(得分:4)

[ -s "$f" ] && mail me@example.com -s "$f contents" < $f

漂亮而紧凑:)

答案 2 :(得分:3)

作为剧本

#!/bin/bash
file=file_to_check
if [ -s ${file} ] ; then
  mail -s "The file is not empty!" me@foo.com < $file
fi

或者在一行中。 (放入crontab)

   [ -s file_to_check ] && mail -s 'File is not empty' me@foo.com < file_to_check

答案 3 :(得分:0)

这样的事情应该有效。

if [ `wc -l file.txt` -gt 0 ]; then
    mail root@localhost < file.txt
fi