To pytanie ma już tutaj odpowiedzi :
Komentarze
Odpowiedź
Metodą, którą znalazłem, aby przechwycić wszystkie dane wyjściowe z dowolnej sesji, jest rozpoczęcie nowej sesji bash i tee do pliku dziennika. jest naprawdę przydatny do śledzenia nie tylko skryptu.
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
lub możesz po prostu napisać skrypt, który będzie sam
./myscript.sh | tee ./myscript.log #this will log only the output of the script.
Komentarze
Odpowiedź
Zawsze możesz wywołać script
wewnątrz skryptu, aby loguj wszystko.
Jeśli chcesz wydrukować i zalogować wszystko w tym samym czasie w skrypcie bash do log.txt
:
Przeglądanie dziennika 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
Komentarze
Odpowiedź
Chcesz użyć tee .
Np .:
echo "Hello World" | tee out.txt
Tworzy to plik out.txt z wynikiem polecenia i drukuje go na ekranie. Użyj „tee -a filename”, jeśli chcesz dołączyć do pliku.
echo "Hello" | tee -a out.txt echo "World" | tee -a out.txt
out.txt będzie miał dwie linie Hello i World (bez -a it miałby tylko świat)
Jeśli chcesz zapisać cały skrypt i wyświetlić cały skrypt:
./script.sh | tee output.txt
Komentarze