Um pipe em um sistema operacional Unix-like é para rodar um programa, pegando sua saída padrão (que de outra forma iria para a tela) e usando-o como entrada para outro programa (no lugar de sua entrada padrão que normalmente viria do teclado).
Parece que o que você quer fazer é ter uma saída de programa para um arquivo , e então ter outro programa usando o arquivo como entrada . Você não precisa de um cachimbo para isso.
Para executar um programa após o outro, tudo em uma linha de comando, use ;
. Por exemplo:
sox /Users/someUser/Desktop/input.mp3 output.mp3 ; mutt -s "someSubject" -a output.mp3 [email protected]
Programas de linha de comando Unix geram um "status de saída" ou "código de retorno". A maioria dos programas emitem 0 para indicar que fizeram a coisa com sucesso, ou algum outro valor, se houver algum problema. Se o seu primeiro comando for assim, use &&
no lugar de ;
para executar o segundo comando apenas se o primeiro for bem-sucedido. Por exemplo:
sox /Users/someUser/Desktop/input.mp3 output.mp3 && mutt -s "someSubject" -a output.mp3 [email protected]