Rich Lab. Blog

「まつらリッチ研究所」の研究の一環で、はてなブログ上にブログを公開。でもなぜか買い物カゴ(要サードパーティCookie有効化)が……。はてブにはそんな機能あったっけ?

Shell Script ライトクックブック2014 第二版

昨年末の冬コミで発行したShell Scriptライトクックブック2014、第二版をコミケットスペシャルで発売します。

f:id:richmikan:20150324165114j:plain

POSIX原理主義シェルスクリプトレシピ集

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-JPBase64エンコード)するためにもnkfコマンドを利用していましたが、これもUTF-8のままBase64変換すればよいわけで、base64コマンドという車輪の再発明によってこちらからも排除することに成功しました。

さようならnkf……、他にもmktempやwhichをPOSIXの範囲で実装することに成功したため、それらに頼っていたレシピもよりPOSIX原理主義忠実なものになりました。

コミケットスペシャル6で初売り

完成した第二版は、3/28(土)から開催されるコミケットスペシャル6で頒布します。スペース番号は、1日目 K-58bです。

通販もやってます

通常のコミケではないし……、遠いし……、行けないよ。という方もご安心を。通販やってます。この通販のためのプログラムは、本書で紹介したレシピをふんだんに活用し、シェルスクリプトで作られたものです。本書レシピの実力の程を確認するためにも、このサイトの通販を是非ご利用ください。(Safari等、このサイトのカゴ入れボタンがうまく機能しない方はコチラへ)

 

 

←カゴに商品が入っている時にこのボタンを押せば、レジへ移動します。(カゴに商品を入れるにはサードパーティCookieを有効化する必要あり)