オリジナル:https://www.runoob.com/linux/linux-shell-io-redirections.html
ほとんどのUNIXシステムのコマンドは、お使いの端末から生成された入力と出力が端末に送り返す受け入れます。コマンドが正常にお使いの端末であることを起こる、デフォルトでは標準入力と呼ばれる場所からの入力を読み込みます。同様に、コマンドは通常、これはあなたの端末であり、デフォルトでは、標準出力に出力を書き込みます。
次のようにリダイレクトコマンドリストがあります
コマンド | 説明 |
---|---|
コマンド>ファイル | 出力をファイルにリダイレクトします。 |
コマンド<ファイル | ファイルへのリダイレクト入力。 |
コマンド>>ファイル | 追加の出力は、道のファイルにリダイレクト。 |
n>は、ファイル | ファイルディスクリプタnファイルは、ファイルにリダイレクト。 |
nは>>ファイル | ファイルディスクリプタnをファイルにリダイレクト追加の方法を提出します。 |
N> M& | mおよびnは結合された出力ファイルです。 |
N <M& | mおよびnは複合入力ファイルです。 |
<<タグ | これは、入力としてタグと終了タグのタグの間にコンテンツの始まりをマークします。 |
ファイル記述子は、典型的には、標準入力(STDIN)、1であること0注標準出力(STDOUT)、2は標準エラー出力(STDERR)です。
リダイレクト深説明
通常の状況下では、それぞれのUnix / Linuxのコマンドは、3つのファイルを開きます実行されています。
- 標準入力ファイル(stdin):STDINファイル記述子Unixのデフォルトのプログラムデータは、標準入力から読み込み、0です。
- 標準出力に標準出力ファイルディスクリプタ1、Unixのプログラムのデフォルトのデータ出力:標準出力ファイル(stdout)。
- 標準エラーファイル(stderr):標準エラー出力ファイルディスクリプタ2は、Unixのプログラムは、標準エラー出力ストリームにエラー情報を書き込みます。
デフォルトでは、コマンド>ファイルリダイレクト標準出力ファイルに、コマンド<ファイルへの標準入力リダイレクトするファイルによって。
あなたは、ファイルに標準エラー出力をリダイレクトしたい場合は、書くことができます。
$コマンド2 > ファイル
あなたは、ファイルの標準エラー出力ファイルの末尾に追加したい場合は、//書き込むことができます 2 標準エラーファイル(stderrのを)
$コマンド2 >> ファイル
あなたはファイルにリダイレクトstdoutとstderr後にマージしたい場合は、書くことができます。
$コマンド> ファイル 2 >&1 或者 $コマンド >> ファイル 2 >&1
あなたは標準入出力をリダイレクトしたい場合は、書くことができます。
$コマンド<ファイル1> FILE2
コマンドコマンドはFILE1、FILE2へのリダイレクトstdoutにリダイレクトSTDIN。
ドキュメントをここに
ここではドキュメントシェルは、対話型シェルスクリプトやプログラムへの入力をリダイレクトするために、特別な方法リダイレクションです。
次のようにその基本的な形式は次のとおりです。
コマンド<< 区切り
文書の
区切り
これは、2つのデリミタ(文書)との間のコンテンツの役割をコマンドへの入力として送信されます。
注意:
- 区切り文字を終了すると、スペースとタブのインデントを含む任意の文字を持つことができないバックの前に任意の文字を持つことができない、トップグリッドの書き込みでなければなりません。
- 区切りの開始前後のスペースは無視されます。
例
ここではドキュメントトイレ-lコマンドを計算することで、コマンドラインの行数:
$ WC -l << EOFの へようこそ 新人チュートリアル www.runoob.com EOF 3 #出力である3 行の $
また、ここではドキュメントには、例えば、スクリプトで使用することができます:
#!/ binに/ bashの #著者:新人チュートリアル #のURL:www.runoob.com CAT << EOFの へようこそ 新人チュートリアル www.runoob.com EOF
上記のスクリプトの実行、出力:
ようこそ
ルーキーチュートリアル
www.runoob.com
/ dev / nullファイル
このコマンドを実行したいのですが、画面に出力を表示したくない場合は、/ dev / nullへ出力をリダイレクトすることができます。
$コマンド>は/ dev / nullに
/ dev / null特殊ファイルで、その内容は破棄されるように書き込まれます。ファイルから読み取るしようとした場合、何も読むことはできません。しかし、を/ dev / nullファイルがそれにコマンドの出力をリダイレクトすることは非常に便利ですが、それは「出力なし」の効果が再生されます。
あなたがstdoutとstderrを保護したい場合は、書くことができます。
$コマンド>は/ dev / nullに 2 >&1
注: 0、標準入力(STDIN)1は、標準出力(STDOUT)であり、図2は、標準エラー出力(STDERR)です。