Tulis output perintah ke file dan std out / error


0

Saya punya perintah yang saya jalankan banyak yang saya ingin mengarahkan output ke file. Saya melakukan ini seperti ini:

runFooBar > output.txt 2>&1

Apakah ada cara saya bisa menulis output runFooBar ke file output.txt sementara masih bisa melihat output dalam standard out / error saat perintah sedang berjalan?

Saya menjalankan ini pada mesin Linux dan OS X.

Jawaban:


3

Gunakan perintah "tee".

echo hi | tee ./file.txt

Perintah "tee" mengambil input standar dan mengarahkannya ke file yang ditentukan dan standar keluar. Ini disebut 'tee' setelah t-berbentuk persimpangan di pipa (perpipaan).


Apakah ini akan menulis dan mencetak kesalahan std dan std out? Jika tidak, bagaimana saya melakukannya?
Nosrettap

Berpotensi Anda bisa menggunakan tee dua kali; cukup gunakan perintah tee kedua untuk mem-pipe standar ke standard error.
Tn. Minty Fresh

1

Cara untuk mengarahkan output standar dan kesalahan standar ke file yang sama adalah:

echo Hello 2>&1 | tee some_file.txt

Ini akan menempatkan keduanya di file yang sama. Anda mungkin ingin meletakkannya di file terpisah . Anda dapat mencapai bahwa fitur Bash, proses substitusi , sebagai berikut:

echo Hello > >(tee standard_output.txt) 2> >(tee standard_error.txt >&2)
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.