Esta é a maneira mais limpa de fazer o que você quer:
mutt [email protected] -a <(mysqldump mysqldumpoptions)
O operador <()
é o que você estava pedindo; ele cria um FIFO (ou / dev / fd) e bifurca um processo e conecta o stdout ao FIFO. >()
faz o mesmo, exceto conecta stdin ao FIFO. Em outras palavras, ele faz todo o material mknod para você nos bastidores; ou em um sistema operacional moderno, faz isso de uma maneira ainda melhor.
Exceto, claro, que não funciona com o mutt, diz:
/dev/fd/63: unable to attach file.
Eu suspeito que o problema é que o mutt está tentando procurar no arquivo, o que você não pode fazer em um tubo de qualquer tipo. A busca é provavelmente algo como escanear o arquivo para descobrir qual tipo de MIME é e quais codificações podem funcionar (ou seja, se o arquivo é de 7 bits ou 8 bits) e depois buscar o início do arquivo para realmente codificá-lo na mensagem. .
Se o que você deseja enviar é texto sem formatação, sempre é possível fazer algo assim para torná-lo o conteúdo principal do email (não ideal, mas na verdade funciona):
mysqldump mysqldumpoptions | mutt -s "Here's that mysqldump" [email protected]