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 STDOUTdo log.txt, ale co, jeśli chcę widzieć dane wyjściowe w terminalu?
Przeczytałem o teei MULTIOSopcji 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.txtwydaje się przechwytywać wszystkiego (w rzeczywistości przechwytuje prawie wszystko).
scriptpolecenia. A możemyscript >&1 > log.txt 2>&1
./my_script.sh > log.txt 2>&1