在linux脚本中,
有没有办法使用mail函数一次发送数组值
function my_mail_function(){
# send array values
mail array_values_here "mymail@domain.tld" ;
}
谢谢
答案 0 :(得分:3)
只需一点bash代码即可逐步执行数组。
#!/bin/bash
# Here's a simple array...
a=(one two three)
# The brackets encapsulate multiple commands to feed to the stdin of sendmail
(
echo "To: Mister Target <target@example.com>"
echo "From: Julio Fong <jf@example.net>"
echo "Subject: Important message!"
echo ""
count=1
for item in ${a[@]}; do
printf "Value %d is %s\n" "$count" "$item"
((count++))
done
echo ""
) | /usr/sbin/sendmail -oi -fjf@example.net target@example.com
请注意,直接使用sendmail
会更安全,而不是依赖mail
或Mail
命令的可用性和配置。您的sendmail
二进制文件可能与我的不同;如果/usr/sbin/
不适合您,请检查/usr/libexec/
。它取决于你正在运行的Linux的分布。
答案 1 :(得分:2)
使用mail
的正确方法是:
mail -s "subject here" recipient1 recipient2 ...
该命令从stdin读取电子邮件正文,因此您可以根据自己的喜好对其进行格式化,并从管道或here-doc或文件中读取它...或者
function my_mail_function(){
printf "%s\n" "${array_var[@]}" | mail -s "array values" mymail@domain.tld
}