A solução mais simples é usar tee
: -
telnet ADDRESS PORT | tee -a myoutputfile
Isso copia a saída para a saída padrão e o nome do arquivo especificado, e a opção -a
é anexada, assim como o redirecionamento >>
fez.
Preciso solucionar problemas de uma sessão de telnet e enviar os resultados para outra pessoa. Quando uso o redirecionamento, salvo o conteúdo da minha sessão, não consigo vê-lo no console.
Como canalizar terminal / programa atual e ainda mostrá-lo no console atual.
Quando eu uso o comando abaixo, posso salvar a saída do programa, mas não consigo vê-lo no console.
telnet ADDRESS PORT >> myoutputfile
Eu poderia usar uma opção de saída de telnet, estou procurando uma maneira independente de comando para fazê-lo.
A questão é específica para uma sessão de telnet, mas aplica-se a qualquer outro comando, incluindo aqueles que não têm uma "opção de salvar saída para arquivo".
Existe um truque para usar a saída de erro como um segundo buffer para gerar saída para 2 dispositivos.
Seu comando seria:
telnet ADDRESS PORT >&2 2>>myoutputfile
Isso acrescenta a saída para myoutputfile e também grava o que sai para o console.
>&2
: copia a saída do fluxo 1 (console) para o fluxo 2 (erro)
2>>
: isso garante que tudo, do fluxo 2, esteja sendo enviado para o arquivo.
Se você não quer arriscar adicionar o errorlogging ao arquivo, mude o 2 para 3 nas duas linhas. ( >&3 3>>file
)
EDIT: Eu só notei a tag linux. Isso é escrito para o Windows, mas ainda pode funcionar.