Tee alternativa (entrada do usuário perdida)

0

estamos usando alguma ferramenta de linha de comando interativa de terceiros e usamos tee para registrar o que um usuário fez - para verificar mais tarde, se necessário ...

A ferramenta funciona da maneira que pergunta qual ação o usuário deseja executar e o usuário seleciona algo e continua com o submenu ou a ação é executada.

Recentemente (quando precisávamos verificar esse log), percebemos que as entradas do usuário não estavam lá. Existe alguma alternativa - como conseguir isso?

Quando tentei simular a ferramenta com:

$ cat r.sh
read -p "Enter some text: " text
echo $text

echo -n "Enter another text: "
read text2
echo $text2

Eu testei e esta é a saída

$ ./r.sh | tee run.log
Enter some text: abc
abc
Enter another text: def
def

$ cat run.log
abc
Enter another text: def

Idealmente, gostaria de ter o mesmo que o usuário viu, o que não é o mesmo que você pode ver.

Solução:

Se alguém precisar, testei com

script -c ./r.sh script.log

e funcionou como esperado + testei com esta ferramenta de terceiros.

    
por Betlista 23.02.2017 / 13:01

1 resposta

3

Você pode usar script para isso; cria um tty aninhado e registra tudo o que acontece nele.

Se você também especificar --timing=… , ele poderá produzir até mesmo "vídeos" reproduzíveis de programas interativos em tela cheia (como editores de texto e outros).

(Para completar - Existe outra ferramenta semelhante asciinema , que é um serviço hospedado que publica automaticamente os registros no link . Útil para fazer demos e tutoriais.)

    
por 23.02.2017 / 13:29

Tags