タグ

標準出力に関するMichaeLのブックマーク (2)

  •   入出力の切り換え(I/O redirection)

    シェルは起動したコマンドの入出力先を切り換える機能(I/Oリダイレクト)を持っ ています。シェルはコマンドラインを解釈し、リダイレクトを表す 特殊な文字 >、<、>> が見つかるとそれに従った処理 を行います。仮に $ echo It will rain tomorrow >memo それに続く語で指定されたファイルに(この場合はmemo)出力先を変更します。 この例ではカレントディレクトリにmemoというファイルを作り、そこにechoの出力 を書き出します。結果としてファイル ./memoに "It will rain tomorrow" が書き込 まれることになります。 もし、この時にファイル ./memoがなければ新たに作られますし、既にある時には 上書きされて古い内容は失われます。 ここで大切なことは、シェルはコマンドラインで指定されたコマンドの 実行を開始する前 にその標準出力を

  •   エラー出力を標準出力にマージする

    標準出力の記録とエラー履歴を一緒に取るためにコマンドラインで次のような記述 をすると思います。 $ command >foo 2>&1 この動作を追いかけてみます。リダイレクト機能表でも分かるように >& の 働きは、左側に書かれたファイルディスクリプタの出力を右側に書かれたファイルディ スクリプタに変更することです。 シェルは標準入力・標準出力・エラー出力の3つのファイルをオープンしています。 そして、それらをファイルディスクリプタ0、1、2として管理しています。 ですから 2>&1 はファイルディスクリプタ2を1に、つまりエラー出力を標準 出力に変更することになります。さらに、>foo として標準出力がfooにリダイレク トされていますから、fooには標準出力とエラー出力がマージされたものが書き出され ることになります。 リダイレクトのメカニズムを理解する上で大切なことは、コマンドライ

  • 1