BAKの日記: UNIX コマンドライン
日記 by
BAK
ここやここあたりで,一生懸命な方がいらっしゃるので,ちとアドバイス.
まず,「シェルのお仕事」と「コマンドのお仕事」を区別することが大事,かな. 例えば,
cat file1 file2 > file3
というコマンド行の場合,シェルは
- file3 を書き込みモードで開いて
- 標準出力を file3 につなぎ替えて
- cat というコマンドに file1, file2 という2つの引数を与えて起動
という作業を行う.
つまり,この行では,file1, file2 という要素は cat が処理し,その後の > file3 の部分はシェルによって処理される.
cat というコマンドの立場に立ってみると,file1, file2 の 2 つの引数を受け取って処理を行い,その結果を標準出力へと出力してるだけである. ここで重要なのは,cat に取ってみれば,実際の出力先がコンソールであろうとファイルであろうと知ったこっちゃない,ということ.
プログラムを作る立場で考えてみる. 何も考えずに標準出力へと吐き出すようにプログラムを作れば,プログラムの起動時のコマンドラインでコンソールへと出力するようにもできるし,ファイルへと出力するようにもできる. これは,UNIX での大きな強みのひとつ.