stringtranslate.com

secuencia de comandos (Unix)

El comando script es una utilidad de Unix que registra una sesión de terminal . Su origen se remonta a la versión 3.0 de Berkeley Software Distribution (BSD) de 1979. [1]

Uso

Una sesión de script se captura en nombre de archivo typescriptde forma predeterminada; para especificar un nombre de archivo diferente, siga el scriptcomando con un espacio y el nombre de archivo como tal: script recorded_session.

El formato grabado scriptconsiste en información de tiempo en texto plano (para toda la sesión) y salida de comando 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 un terminal. [1] El comando util-linux scriptreplay ofrece una función de reproducción a su script, que admite el uso de un archivo de tiempo adicional para la información a nivel de carácter. [2] [3] Algunos servicios en línea, como el ahora extinto shelr.tv, también pueden mostrar el formato como una alternativa de bajo ancho de banda a las capturas de pantalla de video. [4]

Problemas con el comando script

Uno de los problemas con el comando script es que solo permite el registro de un proceso secundario y, a menudo, es necesario registrar el comando en el proceso actual sin generar un nuevo proceso, como cuando se necesita automatizar un script que pueda registrar su propia salida. Los sistemas operativos Unix hacen esto posible mediante el uso de tuberías y redirecciones. Considere los siguientes ejemplos de modelos:

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

NOMBRE_REGISTRO = "script"
rm  -f $NOMBRE_REGISTRO .p $NOMBRE_REGISTRO .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 repiten su entrada estándar cuando se ejecutan bajo el shell resultante, aunque sí lo hacen cuando se ejecutan bajo el comando del script, nuevamente debido a la detección de una terminal.

Alternativas al comando script

El programa ttyrec de 2000 ofrece el mismo tipo de funcionalidad y ofrece varios enlaces. El tiempo es similar al de util-linux. Una versión más moderna del concepto es "asciicast" JSON , utilizado por asciinema. [5]

Véase también

Referencias

  1. ^ ab script(1) –  Manual de comandos generales de FreeBSD
  2. ^ scriptreplay(1)  –  Manual de usuario de Linux – Comandos de usuario
  3. ^ LinuxInsight - Reproducción de sesiones de terminal con scriptreplay
  4. ^ ¡Dios mío! Ubuntu! - Cómo grabar y compartir capturas de pantalla de la terminal rápidamente
  5. ^ "Acerca de - asciinema".