bash功能输出到电子邮件,无需更改格式

时间:2018-06-29 03:37:53

标签: bash shell sh

我在shell脚本中写了一个函数(elb_detail),当我在终端中执行该脚本时,如下图所示。

  

sds-freshservice

     

ELB_HTTPCode_ELB_5XX.cfg:已配置

     

ELB_RequestCount.cfg:已配置

     

ELB_SpilloverCount.cfg:未配置

     

ELB_SurgeQueueLength.cfg:未配置

     

ELB_UnHealthyHostCount.cfg:未配置`

但是我想将脚本输出发送到我的邮件中,因此在下面的shell脚本中使用了该脚本(通过将函数输出传递给变量并发送电子邮件进行了尝试)

output=$(elb_detail) echo -n $output | mailx mymailid

**elb_detail is the function wrote in the script**

我收到如下所示的电子邮件(所有内容均为一行),但我希望我的电子邮件显示上述输出。

################ sds-freshservice ################ ELB_HTTPCode_ELB_5XX.cfg : CONFIGURED ELB_RequestCount.cfg : CONFIGURED [31mELB_SpilloverCount.cfg : NOT CONFIGURED [31mELB_SurgeQueueLength.cfg : NOT CONFIGURED [31mELB_UnHealthyHostCount.cfg : NOT CONFIGURED

请帮助指导  (据我所知,不可能通过将函数输出传递给变量来获得所需的输出。)

1 个答案:

答案 0 :(得分:0)

echo捕获的输出中,您丢失了所有换行符(并且甚至没有由于-n而添加尾随的换行符),那为什么呢?只需将函数的输出通过管道发送到邮件程序中即可:

elb_detail | mailx mymailid