ユーザ用ツール

サイト用ツール


bash:06_redirection

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
bash:06_redirection [2015/05/08 06:17] matsuibash:06_redirection [2015/10/07 00:30] (現在) – 外部編集 127.0.0.1
行 1: 行 1:
 +====== 06 Bash リダイレクション ======
 +
 +
 +===== 書式 標準入出力のリダイレクション =====
 +<code>
 + > File   標準出力の内容をFileに書き込む
 + >> File  標準出力の内容をFileに追加書きする。
 + >      ファイルディスプリタm番の内容を標準出力にコピーする。
 +          (標準出力の内容をファイルディスプリタm番に向ける)
 + >&     標準出力のファイルディスプリタを閉じる
 + < File   標準入力をFileの内容とする。
 + <&     ファイルディスプリタm番の内容を標準入力にコピーする。
 +          (標準入力をファイルディスプリタm番からとする。)
 + <&     標準入力のファイルディスプリタを閉じる
 +</code>
 +
 +===== 書式 ファイルディスプリタ番号を指定したリダイレクション =====
 +<code>
 + n> File   ファイルディスプリタn番の内容をFileに書き込む
 + n>&     ファイルディスプリタm番の内容をファイルディスプリタn番にコピーする
 + n< File   Fileのデータをファイルディスプリタn番の入力とする
 + n<&     ファイルディスプリタn番を閉じる
 +</code>
 +
 +===== ファイルディスプリタ番号 =====
 +
 +0(標準入力)と1(標準出力)は省略する事ができます。
 +|50|300|c
 +|0|標準入力|
 +|1|標準出力|
 +|2|標準エラー|
 +
 +===== 例 =====
 +
 +=== lsコマンドの結果をlistへ書き込む。 ===
 +<code console>
 + $ ls > list
 +</code>
 +
 +=== 既存のファイルに追加書き込み ===
 +
 +dateコマンドをlistへ書き込んだ後、追加でlsの結果を書き込む。
 +<code console>
 + $ date > list
 + $ ls >> list
 +</code>
 +
 +=== 1(標準出力)をlogに2(標準エラー)をerrlogに出力する。 ===
 +<code console>
 + $ command > log 2> errlog
 +</code>
 +
 +=== エラー(2)を/var/log/rsync.logへ、標準出力(1)を/dev/nullへ ===
 +<code console>
 + * 6 * * * root /root/rsync.sh 2> /var/log/rsync.log 1> /dev/null
 +</code>
 +
 +=== 1(標準出力)も2(標準エラー)も残さない。 ===
 +
 +・2>&1は1(標準出力)を2(標準エラー)にコピーするという意味
 +・/dev/nullは捨てるという意味。
 +<code console>
 + $ command >/dev/null 2>&1
 +</code>
 +
 +<color red>■NG例</color>
 +・この場合1(標準出力)を2(標準エラー)にコピーした後、1(標準出力)を捨てる為、2(標準エラー)は残る事になり、1(標準出力)も2(標準エラー)も残る事になる。
 +<code console>
 + $ commnad 2>&1 >/dev/null
 +</code>
 +
 +{{tag>bash}}