Saya memiliki skrip shell set -x
untuk memiliki keluaran verbose / debug:
#!/bin/bash
set -x
command1
command2
...
Outputnya terlihat seperti ini:
+ command1
whatever output from command1
+ command2
whatever output from command2
Masalah saya adalah, output shell (disebabkan oleh set -x
) pergi ke stderr, dicampur dengan output dari perintah ( command1
, command2
, ...). Saya akan senang memiliki output "normal" di layar (seperti skrip dijalankan tanpa set -x
) dan output "ekstra" dari bash secara terpisah dalam file.
Jadi saya ingin memiliki ini di layar:
whatever output from command1
whatever output from command2
dan ini dalam file log:
+ command1
+ command2
(juga baik jika file log memiliki semuanya)
The set -x 2> file
jelas Doens't mengambil efek yang tepat, karena itu bukan output dari perintah set, tapi mengubah perilaku bash.
Menggunakan bash 2> file
untuk seluruh skrip juga tidak melakukan hal yang benar, karena itu mengarahkan ulang stderr dari setiap perintah yang berjalan di shell ini juga, jadi saya tidak melihat pesan kesalahan dari perintah.