メモの日々


2017年05月25日(木) [長年日記]

[shell][unix] Bashのexecコマンド

Bashにはexecという組み込みコマンドがある。このコマンドには

command が指定されていない場合、任意のリダイレクトはカレントシェルで効果を持ち、 終了ステータスは 0 となります。

という機能がある。これはシェルが持つファイルディスクリプタを操作する目的に使える。例えば、

$ exec >/tmp/oreore

を実行すると、ファイルディスクリプタ1(標準出力)の出力先が /tmp/oreore に変更され、以降このシェル上での標準出力への出力は画面ではなく /tmp/oreore に対して行われるようになる。

(ファイルディスクリプタやリダイレクトについては昨日のメモを参照せよ)