私はシェルを使用しており、fish
stdoutとstderrを2つの別々のファイルに書き込み、同時に端末から印刷しようとしています(たとえば、各ストリームをtee
。
やりますbash
(参照https://stackoverflow.com/a/692407/5082444):
command > >(tee -a stdout.log) 2> >(tee -a stderr.log >&2)
fish
シェルで同じ目標をどのように達成できますか?
答え1
次のようなことができます
begin; command | tee -a stdout.log ; end ^| tee -a stderr.log >&2
ただし、最初のエントリがtee
stderrに何かを書くと、レコードも残りますが、これはbashバージョンの場合には該当しません。