
出力をssss-combine
ファイルにリダイレクトしようとしていますが、今のところ成功していません。
基本を試してみましたが> file
、常に画面に表示され、ファイルには何も保存されません。2>&1 > file
tee file
答え1
指定しなかったが、ちょうど実行しているコマンドが異なるため、確実に判断するのは難しいのですが、コマンドは stdout ではなく標準エラー ファイル記述子 (stderr とも呼ばれます) に出力していると想定しています。
リダイレクトはstdout のみをリダイレクト> file
し| tee file
、stderr はリダイレクトしません。
2>&1 > file
どちらもあなたが探しているものではありません。まずエラーを現在のstdout、つまりターミナルエミュレータにリダイレクトし、それからstdout (stdout のみ、stderr は除く) をファイルにリダイレクトします。
を使用して2>file
stderr をリダイレクトするか、前の例の 2 つのリダイレクトを入れ替えて、>file 2>&1
両方のストリームを同じファイルにリダイレクトすることができます。これらは左から右に評価されるため、順序は重要です。今回は、最初に出力をファイルにリダイレクトし、次にエラーを出力の現在の場所 (すでにそのファイルになっています) にリダイレクトします。
答え2
コツはscript -c 'ssss-combine ...' output.txt
、(ssssはstdoutに出力しないので)を使うことです。