我正在尝试修改一个脚本,该脚本向用户组发送目录内容的电子邮件。我正在寻找的修改是在发送之前检查下面的脚本以查看它是否具有有效的输出。
脚本是:
cd $foo/bar && ls | mail -s "Filenames in the \$foo/bar Directory" [email protected]
我想在发送此电子邮件之前测试文件是否为空,因为这将在三打服务器上运行,并且许多服务器发送给同一个人/多人,所以我不想发送一堆空白电子邮件(这是现状) )。
我看过其他类似的问题,但没有一个能完全解决问题。这是最接近的:
但用于附加文件,这是行不通的。另外,man mail
返回一个-E
应该执行内容检查的标志,但我已经使用过它并且我的版本似乎不支持该-E
选项(这不是可以轻易更改的东西)。我收到一个错误mail: invalid option -- E
。
任何帮助,将不胜感激。它不一定是单衬,但这肯定会有帮助!
编辑 - 如果可能的话,我需要在输出检查中忽略目录!我最初没有澄清这一点,但是如果 $foo/bar 有一个目录,/errors
可以避免这种情况吗?
答案1
您可以尝试使用 进行测试wc -l
,例如:
cd $foo/bar && [ `ls | wc -l` -gt 0 ] && ls | mail
答案2
我之前已经使用类似于以下的设置完成了此操作:
out=`cd $foo/bar && ls` ; [[ -n "$out" ]] && echo "$out" | mail -s "Filenames in the \$foo/bar Directory" [email protected]