bash - リダイレクト
シェルは通常キーボードから入力を受付け、結果を画面に出力します。
この入出力を変更しファイルから入力し、ファイルに出力など出来ます。
$ date > file #dateの結果をfileに書き込む $ date >> file #追加書き込み $ sort -n < file > file1 #fileをソートし結果をfile1に書き込む
UNIXではキーボードや画面出力など全てののもがファイルとして扱われます。
プログラムがファイルを処理する時に利用されるのがファイルディスクリプタと呼ばれる番号です。
通常はファイルを処理する時適当なファイルディスクリプタ番号が割り当てられますが
0,1,2番は固定で割り当てられています。
ファイル | ファイルディスクリプタ |
---|---|
標準入力(stdin キーボード) | 0 |
標準出力(stdout 端末画面) | 1 |
標準エラー出力(stderr 端末画面) | 2 |
$ command > log 2>&1 #標準出力と標準エラー出力を同じファイルに書き込む