Conforme explicado aqui , é possível usar o redirecionamento exec
e &>
com tee
para capturar o padrão saída e erro padrão para um arquivo.
Uma coisa que eu estou querendo saber é se você quer ter uma captura diferente por comando (como pode ser entendido de sua exigência para "cada comando" e a afirmação de que script
não pode ser usado) ou se você quer para capturar uma sessão inteira em um arquivo de log.
Se for o último, execute script
no início da sessão e, em seguida, implemente o que quer que você tenha feito dentro disso, tudo funcionará bem, mas a resposta vinculada acima também ajudará. Se você quiser um arquivo diferente para cada comando, provavelmente desejará implementar algo que seja disparado no prompt de comando - possivelmente implementando $PROMPT_COMMAND
( man bash
para obter mais detalhes) e substituindo o arquivo de log de cada comando.
Observe que, como exec &>
captura os fluxos padrão em um arquivo, ele basicamente é desativado e os aplicativos TTY (que são desenhados na tela) são executados (como less
ou mc
). Isso será verdadeiro para qualquer ferramenta de captura de console no nível do shell, a menos que ele faça uma emulação TTY completa (como eu acredito script
).