1

在 linux 脚本中,

有没有办法使用邮件功能一次发送数组值?

function my_mail_function(){

# send array values
mail array_values_here "mymail@domain.tld" ;
}

谢谢

4

2 回答 2

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直接使用比依赖mailorMail命令的可用性和配置更安全。你的sendmail二进制文件可能和我的不在同一个地方;如果/usr/sbin/对您不起作用,请检查/usr/libexec/。这取决于您正在运行的 Linux 发行版。

于 2012-11-07T15:13:53.883 回答
2

正确的使用方法mail是:

mail -s "subject here" recipient1 recipient2 ...

该命令从标准输入读取电子邮件正文,因此您可以按照自己喜欢的方式对其进行格式化,并从管道或 here-doc 或文件中读取它或...

function my_mail_function(){
    printf "%s\n" "${array_var[@]}" | mail -s "array values" mymail@domain.tld
}
于 2012-11-07T19:51:24.383 回答