Esta pregunta ya tiene respuestas aquí :
Comentarios
Respuesta
Un método que encontré para capturar todos los resultados de cualquier sesión es iniciar una nueva sesión de bash y abrir un archivo de registro. es realmente útil para realizar un seguimiento de más de un script.
bash | tee ~/bash.log #this will save standard output until the bash session is ended bash | tee ~/bash.log 2>&1 #this will save all output including errors until the bash session is ended
o simplemente puede usar el script en sí mismo
./myscript.sh | tee ./myscript.log #this will log only the output of the script.
Comentarios
- Su solución aborda STDOUT, pero no STDERR
- Puse un ejemplo con
2>&1
- No ' no creo que esto responda a la pregunta porque el requisito # 1 fue " ejecutado ./myscript.sh sin construcciones de shell adicionales ".
- Esta pregunta fue editada hace 6 horas, yo no ' No tenía esa información cuando respondí la pregunta por primera vez. Estaba usando la salida
>
en lugar de tee y es por eso que compartí la opción para tee.
Responder
Siempre puede invocar script
dentro de un script para registrar todo.
Como imprimir y registrar todo al mismo tiempo en un script bash en log.txt
:
Viendo el registro log.txt
:
$ ./a.sh Script started, output file is log.txt teste Script done, output file is log.txt $ cat log.txt Script started on Fri Feb 16 17:57:26 2018 command: /bin/bash -c ./a.sh teste Script done on Fri Feb 16 17:57:26 2018
Comentarios
Respuesta
Quieres usar tee .
Ej:
echo "Hello World" | tee out.txt
Esto crea un archivo out.txt con la salida del comando y lo imprime en la pantalla. Utilice «tee -a filename» si desea agregarlo al archivo.
echo "Hello" | tee -a out.txt echo "World" | tee -a out.txt
out.txt tendrá dos líneas Hello y World (sin -a solo tendría mundo)
Si desea guardar el script completo y generar el script completo:
./script.sh | tee output.txt
Comentarios