Mi objetivo es registrar toda la salida de un script en un directorio que el script creará.
Por ejemplo, tengo:
~/.abc.sh
:
#! /bin/bash
rails new myapp
Cuando corro ...
cd ~/code
. ~/.abc.sh
... que creará una nueva aplicación Rails en el directorio ~/code/myapp
.
Cuando Rails está creando una aplicación, genera una gran cantidad de texto que quiero capturar y almacenar en un archivo de registro en el mismo directorio que el rails
comando recién creado. También quiero mostrar ese texto en la terminal también.
¿Cómo voy a hacer esto?
~/.abc.sh | tee <file>
? Si es así, entonces el problema es que no sé en qué directorio el script creará la aplicación cuando lo llame, entonces, ¿cómo sabría qué dar en elfile
argumento? (Gracias por los excelentes ejemplos)mktemp
. Ver la página del manualman mktemp
.script
iniciará una sesión interactiva y registrará toda la salida (stdout / stderr, etc.) en un archivo, o (con el-c
parámetro) ejecutará un comando y registrará la salida de eso.Nota: en una sesión interactiva, puede detener la grabación simplemente saliendo de la sesión como lo haría normalmente (por ejemplo,
exit
o Ctrl-D).Para la grabación de sesiones con reproducción de video, también puede probar asciinema .
fuente