Powiedzmy, że mam skrypt Zsh i chciałbym pozwolić mu wydrukować dane wyjściowe STDOUT
, ale także skopiować (zrzucić) dane wyjściowe do pliku na dysku.
Ponadto skrypt zaczyna się od następującej opcji
set -o xtrace
co zmusza go do pełnego mówienia i wypisywania poleceń, które uruchamia. Chciałbym również przechwycić to wyjście w pliku na dysku.
Rozumiem, że jeśli to zrobię
./my_script.sh > log.txt
po prostu wyśle STDOUT
do log.txt
, ale co, jeśli chcę widzieć dane wyjściowe w terminalu?
Przeczytałem o tee
i MULTIOS
opcji w Zsh, ale nie jestem pewien, jak ich używać.
Kiedy robię:
./my_script | tee log.txt
Widzę dane wyjściowe na terminalu, ale plik nie log.txt
wydaje się przechwytywać wszystkiego (w rzeczywistości przechwytuje prawie wszystko).
script
polecenia. A możemyscript >&1 > log.txt 2>&1
./my_script.sh > log.txt 2>&1