昨年末の冬コミで発行したShell Scriptライトクックブック2014、第二版をコミケットスペシャルで発売します。
Shell Scriptライトクックブック 2014 第二版
2015年3月28日 発行(コミケットSP6 1日目)
頒布価格:1200円
ページが増えて154Pに
(Safariをお使いの方はコチラで注文)
第二版の変更点
詳細は目次をご覧ください。と済ませるのもあんまりなので、ポイントを記します。
計10個のレシピが、追加 or 修正
シェルスクリプトを書いていると次から次へとレシピが増えますが、今回も少し増えました。例えば、Base64のエンコードとデコードです。Linux等ではBase64のコーデックたるbase64コマンドが始めから入っていて不要なレシピかもしれませんが、POSIXの範囲で実装した話を紹介しています。これによって、他の環境でも安心してBase64が扱えます。
Base64との相互変換を実現するは、バイナリーコードを扱える必要があります。ところが、AWKの変数(GNU版除く)やシェル変数(zsh除く)ではそれができません。では一体どうやってシェルスクリプトでバイナリーコードを扱うのか、という話もレシピとして追加しました。
その他、どの環境でも使えるシェルスクリプトを書くためのレシピを多数追加加筆しました。
より強化したPOSIX原理主義
ところで、なぜBase64を扱うレシピを追加したのか。それは、メール送信のレシピからnkfコマンドを葬り去るためです。
これまでは、UTF-8文字をSMTPサーバーが許容する7ビット文字セットであるJISコードに変換するためにnkfを利用していました。しかし、Base64エンコードをして英数字だけにしてしまえばUTF-8のまま送ることが可能になるというわけです。また、Subject:などに置く日本語文字列をBエンコード(ISO-2022-JPとBase64エンコード)するためにもnkfコマンドを利用していましたが、これもUTF-8のままBase64変換すればよいわけで、base64コマンドという車輪の再発明によってこちらからも排除することに成功しました。
さようならnkf……、他にもmktempやwhichをPOSIXの範囲で実装することに成功したため、それらに頼っていたレシピもよりPOSIX原理主義に忠実なものになりました。
コミケットスペシャル6で初売り
完成した第二版は、3/28(土)から開催されるコミケットスペシャル6で頒布します。スペース番号は、1日目 K-58bです。
通販もやってます
通常のコミケではないし……、遠いし……、行けないよ。という方もご安心を。通販やってます。この通販のためのプログラムは、本書で紹介したレシピをふんだんに活用し、シェルスクリプトで作られたものです。本書レシピの実力の程を確認するためにも、このサイトの通販を是非ご利用ください。(Safari等、このサイトのカゴ入れボタンがうまく機能しない方はコチラへ)