귀하의 요구 사항이 완전히 명확하지 않다 실행하고, 그러나 { .. }
쌍 프로세스 그룹을 생성하고, 모든 출력은 STD-1 |
로 리디렉션이
{
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]
시도 (파이프), 귀하의 메일 프로그램의 표준 입력에 연결합니다.
mailx
, -s
에 주제를 지정해야 할 수도 있습니다.이 주제에 대한 귀하의 이해를 돕는 다른 질문에서 볼 수 있습니다.
sendmail
또한 실행해야하며이 스크립트를 실행하는 시스템에서 모든 메일을 전달할 수 있도록 구성해야합니다.
IHTH
편집 :
2015년 11월 7일 그냥 이것에 대한 '좋은 대답은'별을 얻고,에 대한 검토, 내가하지 않았다 놀랐어요 프로세스의 과도한 사용에 대해 언급하십시오. 이 경우, 이것은, awk
한 통화로 감소
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]
를 즉, 아니면 한 줄 군중 ;-)을 위해, 그
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]
{ .. }
이 필요하지 않는 것입니다 수 있습니다 파이프에 연결하는 프로세스가 하나뿐이므로
요약 보고서가 하루에 한 번 전송되는 경우 원래 코드는 완전히 사용할 수 있지만 (최적이 아님). 그러나 코딩을 잘못하면 나쁜 습관이 생깁니다. 1 일에 1000 회 실행되는 루프에서 5 개의 프로세스를 호출하면 불필요한 컴퓨팅 리소스가 소비됩니다.
마지막으로, o.p. 샘플 데이터를 포함하지 않았으므로 코드는 가볍게 테스트됩니다.
tmp 파일을 파이프 처리 할 수 없습니까? –
이러한 모든 echo 문은 내 셸 스크립트에 있으며이 셸 스크립트에서만이 세 개의 echo 문을 단일 전자 메일에 전달해야합니다. – AKIWEB
가능한 [셸 스크립트를 사용하여 이메일 그룹에 이메일 보내기] (http://stackoverflow.com/questions/11875036/send-an-email-to-a-email-group-using-shell-script) – tripleee