パスワードを忘れた? アカウント作成
745633 journal

BAKの日記: UNIX コマンドライン

日記 by BAK

ここここあたりで,一生懸命な方がいらっしゃるので,ちとアドバイス.

まず,「シェルのお仕事」と「コマンドのお仕事」を区別することが大事,かな. 例えば,

cat file1 file2 > file3

というコマンド行の場合,シェルは

  1. file3 を書き込みモードで開いて
  2. 標準出力を file3 につなぎ替えて
  3. cat というコマンドに file1, file2 という2つの引数を与えて起動

という作業を行う.

つまり,この行では,file1, file2 という要素は cat が処理し,その後の > file3 の部分はシェルによって処理される.

cat というコマンドの立場に立ってみると,file1, file2 の 2 つの引数を受け取って処理を行い,その結果を標準出力へと出力してるだけである. ここで重要なのは,cat に取ってみれば,実際の出力先がコンソールであろうとファイルであろうと知ったこっちゃない,ということ.

プログラムを作る立場で考えてみる. 何も考えずに標準出力へと吐き出すようにプログラムを作れば,プログラムの起動時のコマンドラインでコンソールへと出力するようにもできるし,ファイルへと出力するようにもできる. これは,UNIX での大きな強みのひとつ.

typodupeerror

一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy

読み込み中...