尝试模拟一个小的shell脚本..有一个已经存在的进程,它创建了两个文件中的一个(即file1或file2)。我的目标是能够根据创建的文件发送电子邮件警报。
例如,如果file1存在,则向John,David,Smith发送电子邮件,说明file1已创建。如果file2存在,则向同一组人员(John,David,Smith)发送电子邮件,说明file2已创建。
如果我写一个简单的if-else它会起作用,但我需要重复我试图避免的代码的某些部分。
#!/bin/bash
file="file1"
if [ -f "$file1" ]
then
send email to three people mentioned
else
send email to three people mentioned saying file2 was created since it always creates two files
fi
}
这里我试图以更好的方式构建脚本,而且我不想重复“发送电子邮件...”命令三次,因为我可能需要在将来添加更多人进入列表。 / p>
请帮忙。提前谢谢。
答案 0 :(得分:1)
您可以创建一个功能块,将邮件发送到所需的人员列表。从任一案例中调用该函数
答案 1 :(得分:0)
像
这样的东西#!/bin/bash
userlist="$HOME/myusers.cfg" # one user per line
function send_alert {
while read -r user comment; do
echo "my command to send to ${user}"
echo "subject=$1"
echo "Content=Hello ${comment}\n$2"
done < "${userlist}"
}
file="file1"
if [ -f "$file1" ]; then
send_alert "My subject" "Content: ${file1} exists."
else
send_alert "My subject" "Content: ${file2} exists."
fi
我在myusers.cfg中添加了一个可选的字段注释,因此您可以在空格后添加一些注释(名称,某人)。
您可以调整send_alert以获取更多业务规则,例如每小时仅发送一次警报,仅在工作时间发送,但夜班人员除外。