例えばlsとやると、モニターにカレントディレクトリのファイルが表示されます。 このコマンドの振る舞いを、 ``カレントディレクトリの中のファイルを調べて'' ``その結果をモニターに表示する'' という2つの部分に分けて考えてみましょう。 この時後の部分をモニターではなく、なにかのファイルに書き込みたいとします 28。そこで、出力先をモニターからファイルに変えてみます。
nursefan% ls list2.list sample2.f sample4.pl text3 list3.list sample3.pl text2 work1 nursefan% ls > test nursefan% |
ここで ``'' は、 ``左の結果を右に出す'' ということを意味していると思って下さい。 こういう処理を難しい言葉でいうと ``リダイレクト処理'' といいます。 実際に、more かなんかでtestを覗いてみると
nursefan% more test list2.list list3.list sample2.f sample3.pl sample4.pl test text2 text3 work1 |
似たような処理をもう一つ。今度は、あるコマンドの結果を他のコマンドの入力にしたい と言う場合を考えてみます。なんだかわからないからやってみましょう。ネタは、 プロセス(…わかんないですよね、こんなん書いても。ようするに、今計算機が行っている 1つ1つの仕事というか命令というかそのようなもの)を調べるコマンドである ps と、 ある文字列(そのまんま。文字の羅列のこと)を検索する grep です。
nursefan% ps -aux | grep saoimage halffishman 16861 0.0 1.0 2068 2540 p1 I 12:39AM 0:00.10 saoimage nursefan 16902 1.4 1.0 2088 2580 p4 S+ 12:40AM 0:00.09 saoimage |
これらのことをより正確に理解するためには、標準入力と標準出力、標準エラー 出力などを学ばないといけません。UNIXの本を参照して下さい。