このブログには、シェルスクリプト、主にBashを中心としたTipsや小話を書いていこうと思います。
過去受託開発業務に従事していた私は、実際に2年くらいシェルを中心とした業務に携わっていたことがあり、それなりの量のコードを書きました。
顧客の名前や業務内容を明かすことはできませんが、SoralisやLinuxで、24時間、365日稼働するシステムの大部分を、シェルスクリプトで実装していました(もちろん、パフォーマンスが重要視されていた部分の開発には、C言語等も使いましたが)。
シェルで実装するという方針は、顧客の要望であり、私が決めたわけではありませんでしたが、もともとUNIXやLinuxが好きだったこともあり、個人的にはとても楽しく仕事ができました。
それから時は過ぎ、当時の受託開発業務から足を洗い、現在は自社サービス開発(主にWeb)を担当するようになりましたが、今でも(というよりもむしろ今だからこそ)シェルスクリプトが手放せなくなっています。
Webサービスというものは、明確な仕様を決め、いつまでにいくらで何人で作るという契約を結ぶことよりも、世の中の流行り廃りを見ながら、面白いサービスを迅速にリリースすることのほうが重要であると思います。
この「迅速なリリース」という命題を満足させるための1つの解は、「手作業を減らす」ことだと思います。
言いかえると、反復が必要な作業や、ルーチンワークの類を、人間の手で片づけないということです。
もう少し具体的な例を挙げると、「result.txtに保存されているユーザーリストの中から、誕生日が4月のユーザーを抽出する」、「毎月の、イベント商品マスタの更新」といった作業などです。
どのように時代が変わっても、サービスや製品の裏側には、常に解析や更新の対象となる膨大なデータが存在しています。
これらのデータいかに迅速に、正確に処理するか。
これこそWebサービスを開発して、運営してくことの真髄だと思っています。
扱う件数が10や20であれば大した問題ではないかもしれませんが、では1万件だったらどうでしょうか?
こういった作業は、人間の目と手で片づけようとすると、非常に煩雑な作業になります。目は疲れ、精神的にも疲労し、ミスを誘発しますので、プログラムに仕事をさせるべきです。
長い前置きになってしまいましたが、シェルスクリプトとは、先ほどの例であげたような面倒な処理を、手軽に迅速に片づけるための、強力なツールです。
この素晴しいツールの魅力を、実例とともに紹介しながら、少しでもシェルスクリプトの面白さをおすそ分けできたら嬉しく思います。