Arquivo de saída de tubulação na ferramenta UNIX

0

Eu quero enviar o arquivo de saída da ferramenta de áudio de linha de comando SoX para o mutt da ferramenta de e-mail.

O que eu quero fazer é algo parecido com isto:

sox /Users/someUser/Desktop/input.mp3 output.mp3 | mutt -s "someSubject" -a [output-from-sox] [email protected]

A coisa que não sei como fazer é colocada entre colchetes.

Eu sou um novato no UNIX, então qualquer sugestão seria muito apreciada.

    
por timkl 17.05.2011 / 09:51

1 resposta

2

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]
    
por 17.05.2011 / 10:14

Tags