Su requisito no está del todo claro, pero probar este
{
echo "Total items: `echo $QUERY1 | awk '{print $1}'`"
echo "Total Error: `echo $QUERY1 | awk '{print $2}'`"
echo "Percentage: $QUERY2"
} | mail -s "subject" [email protected],[email protected]
la pareja { .. }
crea un grupo de procesos, y todo std-salida se redirige al 1 |
(tubería), que se conecta a la entrada estándar de su programa de correo.
Es posible que necesite utilizar mailx
, -s
especifica el tema, que veo de su otra pregunta sobre este tema que parece entender.
También sendmail
deberá ejecutarse y configurarse correctamente para que se entregue cualquier correo desde la máquina en la que ejecuta este script.
IHTH
edición: 2015-11-07
acaba de recibir una estrella 'agradable respuesta' para esto, y en el examen, me sorprende que no lo hice comentar sobre el uso excesivo de procesos. Para este caso, esto se puede reducir a una llamada a awk
, es decir,
awk -v q1="$QUERY1" -v q2="$QUERY2" \
'END {
split(q1,q1arr)
print "Total items: " q1arr[1] \
"Total Error: " q1arr[2] \
"Percentage: " q2
}' /dev/null \
| mail -s "subject" [email protected],[email protected]
O para el público de una sola línea ;-), que es
awk -v q1="$QUERY1" -v q2="$QUERY2" 'END {split(q1,q1arr);print "Total items: " q1arr[1] "\nTotal Error: " q1arr[2] "\nPercentage: " q2 }' /dev/null | mail -s "subject" [email protected],[email protected]
El { .. }
no son necesarios en este caso, ya que solo hay un proceso de conexión a la tubería.
Para un caso como un informe de resumen que se envía una vez al día, el código original es completamente utilizable (pero no óptimo). Sin embargo, la codificación no óptima conduce a malos hábitos. Llamar a 5 procesos cuando uno será suficiente en un bucle que se ejecuta 1000 veces en un día, consumirá recursos informáticos innecesariamente.
Finalmente, como el o.p. no incluyó ningún dato de muestra; el código solo se probó ligeramente.
¿No puedes conectarlo a un archivo tmp y simplemente canalizarlo? –
todas estas declaraciones de eco están ahí en mi script de shell y solo necesito pasar estas tres instrucciones de eco en un único correo electrónico. – AKIWEB
posible duplicado de [Enviar un correo electrónico a un grupo de correo electrónico mediante el script de shell] (http://stackoverflow.com/questions/11875036/send-an-email-to-a-email-group-using-shell-script) – tripleee