command-line – ¿Existe una manera fácil de registrar toda la actividad que realiza un script de shell?

Pregunta:

¿Existe una manera fácil de registrar toda la actividad que ocurre desde un script de shell en un archivo?

Tengo un guion. Produce cosas como "instrucciones" de eco, así como otros resultados del programa. Yo conozco los comandos:

command | tee -a "$log_file"

y

command >> logifle.log

Lo que estoy preguntando es si hay un parámetro de shell para el registro, o un comando establecido que pueda usar o algo así. No necesariamente quiero agregar docenas de redireccionamientos o tee a archivos si no es necesario. Sin embargo, todavía quiero obtener la salida estándar, solo quiero que se registre: wq

Respuesta:

Existe una forma muy fácil y práctica:

Usando script para hacer mecanografiado de la sesión de terminal

  1. Inicie el script comando

    Si se proporciona el file argumentos, por ejemplo, script ~/tmp/output , el script guarda el diálogo en este archivo. Si no se proporciona un nombre de archivo, el diálogo se guarda en el archivo typescript

  2. Comience su guión o lo que quiera comenzar

  3. Si su secuencia de comandos está terminada, detenga la script través de CtrlD

  4. Verifique la salida en el archivo de salida typescript predeterminado


Para iniciar su comando en un paso con script , use el parámetro -c

-c COMMAND
    Run the COMMAND rather than an interactive 
    shell. This makes it easy for a script to capture
    the output of a program that behaves differently
    when its stdout is not a tty.

El uso de un script dentro de su script no tiene sentido porque el script bifurca el shell o inicia un nuevo shell.

Si la variable SHELL existe, el shell bifurcado por script será ese shell. Si no se establece SHELL, se asume el shell Bourne. (La mayoría de los shells establecen esta variable automáticamente).

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım