遍历关联数组并通过内容发送一封邮件
Iterate over associative array and send a single mail over the contents
下面是我目前正在处理的脚本片段。
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
我想迭代关联数组,但只发送一封上述格式的电子邮件,而不是为每个迭代的键发送邮件。
我对实现这一目标的逻辑感到困惑?任何输入实际上都是 helpfull.Thanks.
为什么不能直接将 for
循环的输出传送到 mail
命令。该命令很可能可以通过管道从标准输入读取。所以你需要做的就是
for entry in "${!AArr[@]}"; do
printf "NUMBER COUNT ON %s is : %d\n" "$entry" "${AArr[$entry]}"
done | mail
您可以将数组中的所有值推送到一个变量中,例如:
for i in "${!AArr[@]}"
do
VAL="$VAL \n NUMBER COUNT ON $i' is : ${AArr[$i]}" # concat each value of array with existing in VAL
done
echo -e "${VAL}" # use -e to enable interpretation of backslash escapes
下面是我目前正在处理的脚本片段。
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
我想迭代关联数组,但只发送一封上述格式的电子邮件,而不是为每个迭代的键发送邮件。 我对实现这一目标的逻辑感到困惑?任何输入实际上都是 helpfull.Thanks.
为什么不能直接将 for
循环的输出传送到 mail
命令。该命令很可能可以通过管道从标准输入读取。所以你需要做的就是
for entry in "${!AArr[@]}"; do
printf "NUMBER COUNT ON %s is : %d\n" "$entry" "${AArr[$entry]}"
done | mail
您可以将数组中的所有值推送到一个变量中,例如:
for i in "${!AArr[@]}"
do
VAL="$VAL \n NUMBER COUNT ON $i' is : ${AArr[$i]}" # concat each value of array with existing in VAL
done
echo -e "${VAL}" # use -e to enable interpretation of backslash escapes