2

どこにでも2>&1リダイレクトできることを私は知っています。stderrstdout

  • しかし&、このシェルコードの意味は何ですか? それは追加演算子ではありませんか?
  • すべての記述子を標準出力にストリーミングすることは可能ですか?
4

2 に答える 2

5

正確に言うと、オペレーター>&は、オペレーターの前に記述された記述子を、オペレーターの後に記述された記述子にマージします。

したがって、上で述べたように、オペレーターはであり、それ>&が何を意味するのかを尋ねて&も意味がありません。

2 番目の質問については、1 人のオペレーターでは不可能だと思います。必要な操作ごとに繰り返す必要があります。

コンソール アプリの標準/既定の記述子は次のとおりです。

0 - stdin
1 - stdout
2 - stderr

その他は、アプリケーションによって定義できます...

于 2012-11-11T19:49:52.913 に答える
1

「コンソール」プログラムを作成すると、出力を送信する 2 つの異なるストリーム、stdout と sterr があります。

stout は通常の出力用で、sterr はエラー メッセージを出力するためのもので、デフォルトでは両方ともコンソールに出力されます。「出力」と「エラー」の明確な区分はありませんが、ファイルにリダイレクトする場合は、出力とエラーを 2 つの異なるファイルにリダイレクトできますが、両方を同じファイル (またはパイプ) あなたの最善の策は、stderr を stdout にリダイレクトし、stdout をファイルにダンプすることです

アンパサンドの意味については、 http://en.wikipedia.org/wiki/Ampersand#Unix_shellsを参照してください。

于 2012-11-11T19:51:05.393 に答える