Você pode combinar todas as sugestões feitas nos comentários, com uma string aqui misturada em:
$ script -c 'python -i <<< "print \"test\""'
Script started, file is typescript
Python 2.7.5 (default, Jul 13 2018, 13:06:57)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> test
>>>
Script done, file is typescript
Qual será o log acima em um arquivo chamado, typescript
:
$ cat typescript
Script started on Tue 21 Aug 2018 12:19:50 AM EDT
Python 2.7.5 (default, Jul 13 2018, 13:06:57)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> test
>>>
Script done on Tue 21 Aug 2018 12:19:50 AM EDT
O método acima funciona assim:
-
script -c
'...'- runs the commands in single quotes in
scriptand logs the output to the file
typescript ' -
python -i <<< "...."
- executa o Python no modo interativo, passando um comando,"...."
como aqui string -
"print \"test\""
- comando para executar como aqui string
datilografado com seqüências de escape
Se você achar que o arquivo typescript
resultante contém seqüências de escape, como:
ESC[34mRPMsESC[39;49mESC[0m
ESC[34mRPMs_fpmESC[39;49mESC[0m
ESC[34mansibleESC[39;49mESC[0m
Você pode usar less -R
ou less -r
para visualizá-los:
$ less -R somefile
RPMs
RPMs_fpm
ansible