簡単な shell を書いたら、応用きくことにびっくりくりくりくりっくり を Sagasoon.
前回、下記の記事で、linux のコマンドをご紹介いたしました。
それらのコマンドを頭にいれていただいた後、5行のプログラムをみてもらいたいかなと。
まだ読んでいない方は、是非読んでください。
小さいプログラムを作ってみよう
サンプルのディレクトリに移動して、ここに1個小さいプログラムを書いてみましょう。
shellと言われるバッチファイルですね。
やること
list という名前のファイルに、作りたいディレクトリの名前を一覧して書いておきます。
このプログラムは、この list に書かれたディレクトリを、一括で作ってくれるというものです。
はて??何につかうんだ、このシェルは!?
って思うかもですが、後で便利に使えるから見てみてくださいね。
実際のプログラム作成
mkdir sample_shell cd sample_shell
で、カレントディレクトリを sample_shell に移動してはじめます。
listファイル作成
作成したいディレクトリ名を list に一覧にしておきましょう。
catというコマンドを紹介したと思いますが、ちょっとだけ背伸びした使い方をします。
catで、listをつくってみますね。
cat < list dir001 dir002 dir003 dir004 EOF
この後、
cat list
とすると、
[user_001@users111 test]$ cat list dir001 dir002 dir003 dir004
って、ちゃんと出てきますね?不思議ですねー。
プログラム作成
こんなプログラムを入力してみてください。
cat list | while read dirname do mkdir $dirname done ls -al
5行しかないので、らくちんですねえ。
cat してるってことは、list のファイルの中身を出すんでしょうね?
mkdir ってコマンドが出てきましたね。ディレクトリを作るんだろーなーっていう雰囲気は見られますね。
最後、ls してますので、ファイルの一覧が動くんでしょうね。
この5行で list に書かれていた dir001~dir004のディレクトリが自動で作られます。
参考までに、フローを描くとこんな感じですかね?
簡単でしたね(笑)
発想の転換
プログラムをみるときって、イメージするのがとても大事です。
たとえば、「知ってるコマンド」が出てきたら、「あーここで、これが動くなー」とかね。
それに加えて、「このプログラムはこれが出来ます」と機能の説明があれば、もっとイメージできそうです。
「ここを、こう変えたら、こんなことが出来るな!」と発想しやすいかもですね。
shellのコマンドを知らない人が、先ほどのプログラムをみても「ぴん」とこないですが、「mkdir」を知ってるあなたなら、すごくわかるかと思います。
先ほどのプログラム、 mkdir を、違うコマンドに変えたら、どうなるだろうなーとイメージがつきそうですよね。
cat に変えれば、list に書かれている一覧のファイルのすべてを、表示するんだな・・・とか。
mkdir は、指定された引数のディレクトリを作るんですから、たぶん、 $dirname ってところに、 dir001とか dir002 とかが指定されるんだろうなと。
ってことは、 cat dir001 とかが実行されるわけですものね。
list にある dir001 ってところに、a とか b とか、表示したいファイルを書けば、そうなりそうです。
メールを投げる
複数人に順番にメールを投げるというのもやれそうですよね?
mkdir $dirname
となっているところを
メールを投げるコマンド $dirname
とやってあげたら、 $dirname に指定されたメールアドレス( list にメールアドレス一覧を入れておけばいい )にメールが行きそうですよね?
ものすごい応用ききそうじゃないですか?
list に「一括にやりたい対象」を書いて、プログラムでそれを読み込むってことが楽にできますよってことに気が付けば、OKです。
まとめ
1個のコマンドを覚えたら、どこかに転がっているソースの見方が変わるってことです。
応用応用で、なんとでもなることが沢山あります。
プログラムは「新規に作る」というのもとても大事ですが、特に初心者の人は「真似して応用して作る」が一番いいです。
是非とも、さっきのプログラム(シェル)をいじって、色々やってみてくださいませ。
それでは!
コメント