首页 > 解决方案 > 遍历关联数组并在内容上发送一封邮件

问题描述

下面是我目前正在工作的脚本中的片段。

AArr是一个关联数组,它保存队列名称及其对应的值(整数值),对它的基本迭代(for)给出以下输出:

for i in "${!AArr[@]}"
 do
   echo "NUMBER COUNT ON $i' is : ${AArr[$i]}"
done

NUMBER COUNT ON queue.hxi.1 is:  123
NUMBER COUNT ON queue.rui.4 is:  12
NUMBER COUNT ON queue.hxi.5 is:  35
NUMBER COUNT ON queue.fer.5 is:  1000
NUMBER COUNT ON queue.dcer.2 is:  45

我想迭代关联数组,但只发送一封上述格式的电子邮件,而不是为每个迭代的键发送邮件。我对实现这一目标的逻辑有点困惑?任何输入都会非常有帮助。谢谢。

标签: bashmailx

解决方案


为什么不能将for循环的输出通过管道传递给mail命令。该命令很可能可以通过管道从标准输入中读取。所以你需要做的就是

for entry in "${!AArr[@]}"; do
   printf "NUMBER COUNT ON %s is : %d\n" "$entry" "${AArr[$entry]}"
done | mail

推荐阅读