gihyo.jp » 書籍案内 » 定期刊行物一覧 » WEB+DB PRESS » WEB+DB PRESS plusシリーズ » [改訂第3版]シェルスクリプト基本リファレンス ──#!/bin/shで、ここまでできる

書籍紹介

[改訂第3版]シェルスクリプト基本リファレンス ──#!/bin/shで、ここまでできる

[表紙][改訂第3版]シェルスクリプト基本リファレンス ──#!/bin/shで、ここまでできる

2017年1月20日発売

山森丈範 著

A5判/336ページ

定価(本体2,680円+税)

ISBN 978-4-7741-8694-8

→学校・法人一括購入ご検討の皆様へ

この本の概要

定番の1冊『シェルスクリプト基本リファレンス』の改訂第3版。シェルスクリプトの知識は,プログラマにとって長く役立つ知識です。本書では,複数のプラットフォームに対応できる移植性の高いシェルスクリプト作成に主眼を置き,基本から丁寧に解説。第3版では最新のLinux/FreeBSD/Solarisに加え,組み込み分野等で注目度の高いBusyBoxもサポート。合わせて,全収録スクリプトに関してWindowsおよびmacOS環境でのbashの動作確認も行い,さらなる移植性の高さを追求。ますますパワーアップした改訂版をお届けします。

こんな方におすすめ

  • 標準シェル「#!/bin/sh」の基本から学びたい方
  • 複数のプラットフォームで動く,移植性の高いシェルスクリプトを作りたい方
  • 日常的に使う,お気に入りのコマンドラインを,簡単にツール化したい方
  • Unixコマンドなどの基本を学んだ後,一歩先のシェルスクリプトに挑戦したい方

本書の特徴

プログラマではなく,普通に道具としてコンピュータを使用している人でも,たとえば,カレントディレクトリの複数のファイルそれぞれに一定の処理を施したいとか,所定のオプションを付けて一連のコマンドを起動したいとかいった状況はよく発生します。こんなとき,シェルスクリプトを知っていれば,これらの処理を行うツールがすぐに簡単に作れます。

シェルスクリプトはプログラム言語の一種ですが,コンパイルなどの操作が不要で,誰でも気軽に書けてしまう言語です。プログラム言語の代表格であるC言語は,ある意味プログラマだけが知っていればいい言語ですが,シェルスクリプトは,プログラマ以外のユーザも含めたごく普通のユーザが,自分の作業の効率アップのために日常的に使用する言語なのです。

本書では,おもにLinuxを中心に標準シェルとして使用されているbashを取り上げ,このbashを使ったシェルスクリプトの書き方をひととおり解説しています。執筆にあたっては,bashを基本としながらも,bash以外のBシェル(Bourne Shell)系のシェルとの互換性・移植性を重視し,bash独自と思われる拡張部分よりも,基本的なBourne Shellとしての解説に重点を置きました。このため,すべての項目について,bashのほかに,FreeBSDのsh(/bin/sh)やSolarisのsh(/bin/sh)で動作確認を行い,対応状況をそれぞれ ※1)のようにアイコンを用いて表示してあります。この表示は,シェルスクリプトの互換性・移植性のための大きな参考となるでしょう。また,これら4種類のシェルすべてに○印のアイコンが表示されている項目のみを使用すれば,OSに依存しない,移植性の高いシェルスクリプトを記述することができるはずです。

シェルスクリプトをまったく書いたことがない人は,本書を読み,まずは「Hello World」から書き始めていただきたいです。また,ある程度のシェルスクリプトを書いたことがある人には,本書の記述をヒントに,シェルスクリプトの小技・裏技を再発見していただければ幸いです。

※1)
 改訂第3版からは,BusyBox(sh)のアイコンも加えてアイコン表示は4つになっています。

本書が想定している読者

本書では,ユーザとして,コマンドラインでのLinux/UNIXの基本操作ができる人を想定しています。具体的には,ls,cp,rmなどの基本的なコマンドが使えれば本書の内容が理解できるでしょう。

また,本書の中には,シェルスクリプトとC言語とを比較している部分がありますが,C言語については必ずしも理解している必要はありません。これはあくまでさらに理解を深めるための参考事項にすぎないため,適宜読み飛ばしても差し支えないものです。

本書が対象としている環境

本書の記述内容を実行するには,bashが動作する環境が望ましいです。

bashは,LinuxやmacOSでは,標準シェルとしてインストールされているため,これらのユーザは,とくに設定変更を行っていないかぎり,すでにbashを使用しているはずです。FreeBSDやSolaris 10以前では,bashはOS標準ではありませんが,ソースファイルやバイナリパッケージなどからbashをインストールして使うことが可能です。

また,bashがなくても,sh,ash,kshなどのBシェル系のシェルがあれば,前述のとおり本書の のすべてに○がついている項目については,Bシェル系として共通に動作するでしょう。

なお,本書ではOSとしてLinuxなどのUNIX系OSを想定していますが,bashが動作する環境でさえあれば,たとえばWindowsのCygwin環境や,Windows 10で使えるようになったbashのような,非UNIX系環境であってもかまいません。

動作確認の環境について

動作確認時のOSのバージョンとシェルはそれぞれ,Fedora 23(Linux)のbash-4.3.42,FreeBSD 10.3のsh,Solaris 11の/usr/sunos/bin/sh,busybox-1.22.1(BusyBox)のsh,さらに,Windows 10のbash-4.3.11,macOS Sierra(v10.12)のbash-3.2.57です(※2)。これら以降のバージョンを使用していれば問題なく動作すると思われます。また,これら以前のバージョンであっても,ほとんどが問題なく動作すると思われます。ただし,上記と異なるバージョン,環境においては,本書での説明内容と動作等が異なる場合もあります。

※2)
 WindowsおよびmacOSについては,動作確認の結果,Linux(bash)のアイコン表示と同じ実行結果でしたので,Linux(bash)のアイコン表示を参考にしてください。

著者プロフィール

山森丈範(やまもりたけのり)

大学時代にUNIXを触って以来,仕事でもプライベートでもUNIX系OSを使用しているプログラマ。SunOSやNEWS-OSなどが動くUNIXワークステーション上の/bin/shに長く慣れ親しみ,当時職場等でログインシェルとして与えられていたcshを,ヒストリもエイリアスも補完機能もない素の/bin/shに自主的に変更して使用したほどの/bin/sh好きである。メイン環境がLinux上のbashに変わった現在でも,/bin/shとの互換性/移植性を常に気に留めながらシェルスクリプトを書いている。

コメント