Você pode fazer assim (eu reduzi um pouco para readabillity):
{ awk 'BEGIN{...} END{...} END{if($1<100){exit(1)}}' file || exit; } > >(sendmail -t ...)
-
awk
é chamado em um comando composto .-
if($1<100)
verifica o valor -
exit(1)
anula a execução adicional do código dentro deawk
e retorna o código de saída 1
-
-
|| exit
isto é executado quando o comandoawk
retorna false (código de saída maior que 0). O shell é então encerrado e nenhum outro comando é executado. Eu não uso o pipe|
aqui porque isso irá abrir uma subshell e esta subshell será então encerrada e o próximo comando será executado de qualquer maneira. -
>(sendmail -t ...)
a saída é enviada parasendmail
(se ainda não tiver saído).
O comando inteiro seria então:
{ awk 'BEGIN{print "Subject:SASL Spam\nFrom:Server.de <[email protected]>\nTo:[email protected]"}
END{printf("%s5\n", $1" | "$2)} END{if($1<100){exit(1)}}' \
/home/web0/html/tools/uptime/sasl.txt || exit; } > >(/usr/lib/sendmail -t [email protected])