我有一个查询将结果发送到电子邮件。如果查询没有结果,我不想发送电子邮件。我怎样才能做到这一点 ?
继承人的代码
mysql -umy -hmysql1.com -P2 -pmysq <<<" Select * from Data.data "| mail -aFrom:test@test.com -s 'test' test@gmail.com
答案 0 :(得分:0)
并非每个任务都可以在单个命令管道中轻松完成。试图将其强行插入单行内容会使代码难以编码并难以维护。
随意在脚本中写一些语句:
result=`mysql -umy -hmysql1.com -P2 -pmysq -e " Select * from Data.data "`
if [ -n "$result" ]
then
echo "$result" | mail -aFrom:test@test.com -s 'test' test@gmail.com
fi
-n
测试用于非零长度的字符串。有关详细信息,请阅读http://linuxcommand.org/lc3_man_pages/testh.html。
重新评论:
我在上面显示的语句是你可以在bash命令行输入的内容。 Bash支持变量和“if / then / else”结构等等。
编写bash脚本很容易。您可以在命令行键入的任何内容都可以在文件中。打开文本编辑器并写下我在上面显示的行。保存文件。例如,它可以被称为“mailmyquery.sh”(.sh扩展只是习惯性的,它不是必需的。)
退出文本编辑器。然后运行:
bash mailmyquery.sh
它运行文件中的语句,就像您在命令行中自己编写它们一样。
瞧!您现在是一个shell脚本程序员!