これまで様々なプログラミング言語でハローワールド*してきた私ですが、どの言語でもそれ以上勉強してまともなモノを作ったことはありませんでした。だって難しいんだもん。でもシェルスクリプトはひと味違う。何行かのスクリプトを書くだけでなんとなくプログラマー気分が味わえてしまうのです。
*いろんなプログラムの勉強を始める時に読む入門書では大抵「ハローワールド」(あるいはそれに似た言葉)を表示させるプログラムを書くことから始まる。
ここ数日シェルスクリプトでプログラマー気分を味わうのにはまっているのです。本当は1年以上前にシェルスクリプトの参考書みたいなのを買ってきて何かを作ろうと思ってはいたのですが、シェルスクリプトを使ってやるべきことが見つからない、ということでホッタラカシでした。でも最近やっとやるべきことを見つけることが出来たので作ってみるとこれが意外と便利だったのです。
このコーナーをどんな人が読んでいるのか良く解らないのですが、多分シェルスクリプトって何?という人が多くいそうなので説明しておくことにします。解りやすく言うとAppleScriptみたいなものです。というかAppleScriptも何だか解りませんよ!という人もいるかも知れないのでAppleScriptのことも説明しないといけませんかねえ?
AppleScriptを使うと普段やっている面倒な作業が結構楽に出来てしまうかも知れない、というものです。「AppleScriptからFinderに命令して任意のフォルダを開く!」なんてことはマウスでクリックしてやっても面倒な作業ではないのですが、「選択したファイルの拡張子を変える!」とか「フォルダ内のファイルに連番を付ける!」とかは面倒な作業です。あるいは「デスクトップの背景画像を変える!」ということも可能なのです。(なんで「!」が付いているのかは良く解りません。)つまりクリック一つでいろんな事を自動的にやってくれるというのがAppleScriptなのです。
おバカな感じで書いていたらAppleScriptの説明が長くなってしまいました。しかもここまでを読んでみるとMac専用なことを書いているようにもとれますが、WindowsでもWindowsでもシェルが使えるっぽいですし、Windowsだとバッチファイルというのでいろんな面倒なことをできるはず。(多分そうだったと思います。)
とにかくシェルスクリプトで決まり切った面倒な作業が自動的に出来るようになったりするのです。問題はデスクトップ環境に慣れている人には敬遠されがちなターミナルからシェルスクリプトを実行しなければいけないことがほとんど、というところでしょうか。
まあ、そんなことはどうでもいいと言えばどうでもいいのです。というか本当にどうでもよかったりするのですが、シェルスクリプトは結構便利なので前置きが長くなりすぎました。ここでやっと本題に入ることが出来るかも知れないのです。
私がシェルスクリプトで何を作ったのかというと、「Black-holicのRSSのファイルをほとんど自動的に作成する!」ものです。かなり「なんちゃって」なものではありますが、私の書いたシェルスクリプトでも、実行して記事番号を入力するとタイトルと最初の段落が書かれたRSSファイルが作成できるのです。参考書の使える部分を書き写しただけみたいなスクリプトですが、かなりプログラマー気分です。しかも、見やすさのための空行を含めてたったの25行です。
もちろん、私の書いたスクリプトは私がいつも使っているパソコンの内部でしか機能しないので、他のパソコンで実行してもエラーになるだけです。でも私のパソコン内に限れば、この上なく軽量で無駄のないアプリケーションみたいな感じで動くのです。スバラシです。
でも「なんちゃって」なので、このRSSを配信するのはLittle Mustapha's Black hole--GOLD--に限らせていただきます。一応私の使っているRSSリーダーではちゃんと機能しています。
RSS配信といっても出来上がったRSSのファイルは私がサーバーにアップロードしないといけないので、忘れた場合は意味がありません。もっと頑張るとアップロードの部分まで自動化できるとは思うのですが、サーバーにアップロードとなるとログインパスワードをスクリプトの中に書かないといけなくなるので、多少のリスクが生じます。というか何よりもそのやり方を考えるのが面倒です。(「決まったファイルを決まったサーバーにアップロードする」というのも決まり切った面倒な作業ではあるのですけどねえ。)
ここまで出来ると、もしかするとこのBlack-holicのHTMLファイルも「ほとんど自動的に作成出来る!」のではないか、と思ってしまうのですが、よく考えたらいろいろ問題がありました。まず文字コードの問題があります。それから形式が決まっているように見えるこのBlack-holicですが、画像の配置とかその他もろもろは毎回違っていたりするのです。
まあ、そんな問題は作ってから考えるべきなのですが、でもここまで来てしまうとシェルスクリプトには向かない作業になるのかも知れません。私の持っている参考書にも書いてありました。「何がシェルスクリプトに向いているか、向いていないかを考えてからスクリプトを書き始めましょう」みたいなことが。
このようにシェルスクリプトを褒め称えつつ、今度は「Little Mustapha's Black holeのHTMLファイルをほとんど自動的に作成出来る!」ことが出来るようにPerl(ウィキペディア「Perl」)を頑張ってみたい感じです。というかPerlの参考書も一年前に買ってるんですけどね。読んだだけで出来るつもりにはなっています。
という感じで101回目でやっとBlack-holicらしいないようになってきました。でも次回は違うかも知れません。というかこんな日記みたいなないようでは満足いかないのできっと次回はひどいことになるでしょう。