Komut çıkışını bir dosyaya ve std out / error komutuna yazın.


0

Çıktısını bir dosyaya yönlendirmek istediğim çok çalıştırdığım bir komutum var. Bunu böyle yapıyorum:

runFooBar > output.txt 2>&1

Komut çalışırken hala standart çıktı / hata çıktısını görebiliyorken runFooBar çıktısını output.txt dosyasına yazabilmemin bir yolu var mı?

Bunu Linux ve OS X makinelerinde çalıştırıyorum.

Yanıtlar:


3

"Tee" komutunu kullanın.

echo hi | tee ./file.txt

"Tee" komutu standart girdiyi alır ve hem belirtilen hem de standart çıktıya yönlendirir. Sıhhi tesisattaki t şeklinde kavşaktan sonra 'tee' olarak adlandırılır.


Bu hem std hatasını hem de std çıkarıp yazdıracak mı? Olmazsa, nasıl yaparım?
Nosrettap

Potansiyel olarak iki kez tee kullanabilirsiniz; sadece standart hataya standart boru çıkışı yapmak için ikinci tee komutunu kullanın.
Bay Minty Fresh

1

Hem standart çıktıyı hem de standart hatayı aynı dosyaya yönlendirmenin yolu :

echo Hello 2>&1 | tee some_file.txt

Bu ikisini de aynı dosyaya yerleştirir. Belki onları ayrı dosyalara koymak isteyebilirsiniz . Bir Bash özelliğini, işlem yerine koyma işlemini aşağıdaki şekilde yapabilirsiniz:

echo Hello > >(tee standard_output.txt) 2> >(tee standard_error.txt >&2)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.