3 votos

Guardar la sesión de Mac Terminal en un archivo de texto

¿Hay alguna forma de guardar el historial de terminal de un script en un archivo? Sé que puedo hacerlo mediante Shell > Exportar texto como... pero ¿hay algún comando (Bash) para hacerlo?

0 votos

¿Cuál es el historial de terminales de un script? ¿Es la salida? ¿Redirigirla a un archivo con my_script > output.txt ¿será suficiente?

0 votos

@patrix Mi script tiene un menú principal. Si el usuario introduce alguna opción, produce una salida. Me gustaría incluir una opción en el menú principal que guarde lo que sea que esté en pantalla en un archivo de texto, quise decir. Espero que eso lo aclare.

0 votos

@patrix Básicamente, la sesión actual.

6voto

thrig Puntos 101

Esto se puede hacer con el comando estándar de unix script(1) aunque requiere la ejecución de un subshell bajo el shell actual. Es decir, inicie un terminal y ejecute script , emite los comandos que deban ser registrados, y luego sale de ese shell:

$ script
Script started, output file is typescript
$ uptime
11:30  up 22 days, 16:15, 1 user, load averages: 1.43 1.37 1.38
$ exit

Script done, output file is typescript
$ 

Entonces en la salida typescript debería haber un registro de la sesión de shell ejecutada bajo script(1) .

Pero espera, ¡hay más! Con expect también se puede guardar una sesión y posiblemente repetirla. Para ello es necesario instalar expect desde un sistema de puertos (Fink, Homebrew, o aquí MacPorts) que debería instalar autoexpect :

$ port installed | grep expect
  expect @5.45.3_0 (active)
$ which autoexpect
/opt/local/bin/autoexpect
$ autoexpect $SHELL
autoexpect started, file is script.exp
$ uptime
 6:47  up 23 days, 11:32, 1 user, load averages: 1.37 1.39 1.33
$ exit
autoexpect done, file is script.exp
$ 

Hacer algo útil con script.exp a su vez requiere probablemente el conocimiento de expect y TCL, por lo que es una opción más avanzada. ( expect en particular tiene un log_file que se puede activar para guardar todo, pero entonces estarías escribiendo todo en TCL y no bash ...)

En caso contrario, el propio terminal debe guardar la sesión; iTerm.app probablemente tiene más opciones para esto (Sesión -> Registro -> Inicio) que Terminal.app .

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X