私は単にstdoutとstderrを保存できるようにしたいです。ソフトウェアのインストール
私は3つの状況を解決したいと思います。
- apt-getを使用するとき
- apt-getとteeを使用するとき
- make installを使用するとき
1. apt-getを使用するとき
ソフトウェアのインストール中にstdoutとstderrの違いを「視覚化」するのに問題があります。実際にソフトウェアをインストールすると、端末に多くの出力が表示されることが多く、その一部には警告が表示されることがよくあります。だからこんな文脈で」
- インストールが成功した場合、stderrは完全に空ですか?
- または警告がある場合は、標準出力で「残り」とは何ですか?
- それとも、この場合はstdoutとstderrを一緒に保存することをお勧めしますか?
とにかくこれを食べますか?
sudo apt-get package 1>output.txt 2>errors.err
2. apt-getとteeを使用する場合
実際、stdoutとsterrをファイルに保存するだけでなく、私の端末で見続ける方が良いでしょう。では、ティーを活用すれば、これが最高の作品になるのでしょうか?
sudo apt-get package | tee 1>output.txt 2>errors.err
3. make install を使用する場合
仕事が複雑になるようですが、こんなに簡単でしょうか?
./configure 1>output1.txt 2>errors1.err
make 1>output2.txt 2>errors2.err
make install 1>output3.txt 2>errors3.err
答え1
私はこれらの問題を順番に議論します:
$ sudo apt-get install package 1> apt.out 2> apt.err
apt-get
質問をすることにした場合は、いくつかの問題が発生する可能性があります。プロンプトは標準出力に送信され、ファイルにリダイレクトされ、ユーザーには表示されません。この方法でapt-getを使用するには、他のapt-get --assume-yes install package 1> apt.out 2> apt.err
オプションの使用方法に関する質問()を先制的に実行してください。ただし、「はい」を前提にすると、意図しない結果が生じる可能性があることに注意してください。
$ sudo apt-get install package | tee 1> apt.out 2> apt.err
これは少し優れていますが、最初に呼び出しを修正してみましょうtee
。
$ sudo apt-get package 2> apt.err | tee apt.out
初期呼び出しが正しく行われず、エラーログの代わりtee
にtee
標準エラーがリダイレクトされます。apt-get
apt-get
これはよりうまく機能しますが、質問に対する回答を提案できる標準エラーで送信される有用な情報は画面に表示されません。
$ ./configure 1>output1.txt 2>errors1.err
$ make 1>output2.txt 2>errors2.err
$ make install 1>output3.txt 2>errors3.err
これにより、期待どおりに正確に実行されます。 3つのコマンドのすべての標準エラーと標準出力を含む6つのファイルが生成されます。次のように少し難解なファイル名を使用することをお勧めします。
$ ./configure 1> configure.out 2> configure.err
$ make 1> make.out 2> make.err
$ make install 1> install.out 2> install.err
しかし、私はそれらを2つのファイルに入れることを好みます。
$ ( ./configure && make && make install ) 1> build.out 2> build.err
これは2つの異なるタスクを実行します。まず、すべてのビルドコマンドをサブシェルに入れ、魔法のように出力ストリームを一緒に収集します。第二に、シェル&&
演算子を使用してただ前のコマンドが成功した場合は、次のコマンドを実行します。
ノートapt-get
:あなたの電話を全プロセスに修正しました。