概要
「マスタリング Linux シェルスクリプト第 2 版」を読みました。 感想を書きます。
前提
目的
- CI/CD の実力を上げるための手段としてシェルスクリプトの知識を獲得したかった
- 出版された当初にネットで評判が良く(こちらの記事を参考にした)、おもしろそうに見えた
- 特に、sed、awk あたりを入門したかった
前提知識
調べることはあっても、シェルスクリプトを体系的に学ぶのは初めてでした。 一応、1 月に「シェル・ワンライナー 160 本ノック」を読んでいました。しかし、想定よりも難易度が高く、無理にワンライナーで書く理由もなかったので、途中でやめてしまいました。
読了時間
付録 A を除いて一通り写経した結果、だいたい 15 時間 ~ 20 時間程度かけたと考えています。 解説が丁寧で、本書のホームページで紹介されているサンプルコードもしっかりしていたので、休日を使って一気に読み切ることができました。 付録 A の内容もしっかり読み切ろうとすると、あと 5 時間ぐらい必要でした。
付録 A を飛ばした理由は、本書で一番学びたかった部分をすでに学べたので、いったん残りの部分は読み飛ばすことにしたからです。 付録 A も今後必要な知識をまとめた充実した内容だったので、都度参照するか、本書全体を読み返すタイミングで読もうと考えています。
感想
タイトルからシェルスクリプトについての厳格な本だと想像していたのですが、内容はシェルスクリプトにおける入門者向けの本でした。 今後、「シェルスクリプトについて入門的な本を知りたい」と言われたら真っ先にこの本を挙げます。
今までなんとなく利用していた文法(シバン、終了ステータス、コマンドラインリスト、制御構文)の意味を丁寧に解説しており、基礎的な部分からシェルスクリプトの理解を深められました。 そのため、簡単なシェルスクリプトの読み方と書き方について学べました。
以前から、grep、sed、awk は、簡単な使い方はできるけど、ちょっと混み合った使い方ができませんでした。そこで、本書を読むことで利用するハードルを下げられたと考えています。 そのため、本を読む目的だった sed、awk の入門を達成できました。 ついでに以前から学びたかった grep、sed、awk における正規表現(BRE、ERE)の使い方も簡単に学べることができて幸運でした。 まだまだ理解が浅い部分や実務でベストな使い方ができるとは思っていないので、引き続き練習や本を読み返します。
付録 A の内容を理解することで、よりリッチなシェルスクリプトを記述できるようになれそうだと考えています。 ただ、このレベルのスクリプトを作ることは現状の目標から離れてしまうと判断したので、いったんは読み飛ばしています。 今後さらにシェルスクリプトの理解を深めるには必須の内容だと考えているので、年内には読み返したいです。
次に関連で勉強すること
シェルスクリプトは CI/CD の勉強におけるサブドメインと設定しているので、CI/CD を主体に勉強と実践をします。 ただし、プログラミング言語と同様にシェルスクリプトも忘れてしまうので、何かしらの方法で繰り返し学ぶ機会を用意したいです。
- 会社のリポジトリに CI/CD を組み込む。他チームで利用されている CI/CD の設定を参考にする
- CI/CD を組み込む過程で、手元でやっている作業をシェルスクリプトによる自動化を図る
- 本書を読み返すか、ほか書籍(シェルスクリプト基本リファレンス、シェル・ワンライナー 160 本ノックなど)でシェルスクリプトの知識の定着を図る