Articulo de referencia

script (Unix)

El comando script es una utilidad de Unix que graba una sesión de terminal . Se remonta a la distribución de software Berkeley 3.0 (BSD) de 1979. [ 1 ] Uso Una sesión de script ...

El comando script es una utilidad de Unix que graba una sesión de terminal . Se remonta a la distribución de software Berkeley 3.0 (BSD) de 1979. [ 1 ]

Uso

Una sesión de script se captura en un nombre de archivo typescriptpor defecto; para especificar un nombre de archivo diferente, siga el scriptcomando con un espacio y el nombre del archivo de la siguiente manera: script recorded_session.

El formato grabado scriptconsiste en información de temporización en texto plano (para toda la sesión) y salida de comandos textual, incluyendo cualquier código de escape ANSI que el programa haya impreso para formatear. Utiliza un pseudoterminal para este propósito, por lo que los programas actúan exactamente como si estuvieran en una terminal. [ 1 ] El comando util-linuxscriptreplay ofrece una función de reproducción a su script, que admite el uso de un archivo de temporización adicional para información a nivel de caracteres. [ 2 ] [ 3 ] Algunos servicios en línea, como el ahora desaparecido shelr.tv, también pueden mostrar el formato como una alternativa de bajo ancho de banda a las grabaciones de pantalla de vídeo. [ 4 ]

Problemas con el comando de script

Uno de los problemas del comando `script` es que solo permite el registro de un proceso hijo; y a menudo es necesario registrar el comando en el proceso actual sin crear un nuevo proceso, como cuando se requiere automatizar un script que pueda registrar su propia salida. Los sistemas operativos Unix lo hacen posible mediante el uso de tuberías y redirecciones. Consideremos los siguientes ejemplos:

Bourne shell

Todos los shells relacionados con Bourne shell ( sh), por ejemplo Thompson shell ( sh), Bash ( bash), KornShell ( ksh) y Z shell ( zsh), permiten que stdout y stderr se conecten a una tubería con nombre y se redirijan al comando tee , por ejemplo:

LOGNAME = "script" rm -f $LOGNAME .p $LOGNAME .log mknod $LOGNAME .p p tee < $LOGNAME .p $LOGNAME .log & exec > $LOGNAME .p 2 > & 1

El script anterior registra script.logtoda la salida del execcomando. Sin embargo, algunos programas interactivos (como Python ) no muestran su entrada estándar cuando se ejecutan bajo el intérprete de comandos resultante, aunque sí lo hacen cuando se ejecutan bajo el comando del script, debido a la detección de una terminal.

Alternativas al comando de script

El programa ttyrec del año 2000 proporciona el mismo tipo de funcionalidad y ofrece varias interfaces. Su funcionamiento es similar al de util-linux. Una versión más moderna del concepto es el JSON "asciicast" , utilizado por asciinema. [ 5 ]

Véase también

Referencias

  1. 1 2Manual de comandos generales de FreeBSDscript(1)  
  2. Manual de usuario de Linux – Comandos de usuario de Manned.orgscriptreplay(1)  
  3. "LinuxInsight - Reproducción de sesiones de terminal con scriptreplay" . Archivado del original el 21/04/2016 . Consultado el 22/12/2008 .
  4. ¡Dios mío! ¡Ubuntu! - Cómo grabar y compartir rápidamente grabaciones de pantalla de la terminal
  5. "Acerca de - asciinema" .