2014年7月9日水曜日

第38回「シェルの一部をリダイレクトする」

第38回「シェルの一部をリダイレクトする」です。

標準出力と標準エラー出力をまとめて、ファイルに出力し、元に戻す。

######
test.sh
######
exec 3>&1 >file 2>&1
command

exec 1>&3 2>&1
command

0,1,2,3はファイルディスクリプタを表している。

0,1,2は予約されている。
ファイルディスクリプタ0(標準入力)
ファイルディスクリプタ1(標準出力):画面出力
ファイルディスクリプタ2(標準エラー出力):画面出力

「2>&1」は、「2 の出力先を、1 の出力先と同じものに設定」を表す。

3>&1
ファイルディスクリプタ1(標準出力):画面出力
ファイルディスクリプタ2(標準エラー出力):画面出力
ファイルディスクリプタ3:画面出力★設定

>file
(1>fileと同意味)
ファイルディスクリプタ1(標準出力):file出力★設定
ファイルディスクリプタ2(標準エラー出力):画面出力
ファイルディスクリプタ3:画面出力

2>&1
ファイルディスクリプタ1(標準出力):file出力
ファイルディスクリプタ2(標準エラー出力):file出力★設定
ファイルディスクリプタ3:画面出力

1>&3
ファイルディスクリプタ1(標準出力):画面出力★設定
ファイルディスクリプタ2(標準エラー出力):file出力
ファイルディスクリプタ3:画面出力

2>&1
ファイルディスクリプタ1(標準出力):画面出力
ファイルディスクリプタ2(標準エラー出力):画面出力★設定
ファイルディスクリプタ3:画面出力

0 件のコメント: