シェルスクリプトの基本

ではとても簡単なシェルスクリプトを作ってみます。プログラミング言語の解説書では、画面に「Hello World」を表示する、という例が数多く見られます。これにならって同じ事をシェルスクリプトでもやってみましょう。

「Hello World」を表示させるスクリプト

#!/bin/sh
echo Hello World

エディタでこのような内容を記述し、step1.shとして保存します。パーミッションを変更してプロンプトから実行してみましょう。「Hello World」という文字が画面に表示され、コマンドプロンプト(~$)に戻ります(*2)。

*2エディタは、[アプリケーション] - [アクセサリ] - [テキスト・エディタ]で起動します。上記スクリプトを入力したら適当な場所にstep1.shで保存します。保存したファイルを右クリックし、[プロパティ]をクリックするとstep1.shのプロパティが表示されます。[アクセス権]のタブにある[プログラムとして実行できる]にチェックを入れると実行可能になります。 デスクトップに保存した場合は、端末で「cd /home/ユーザー名/デスクトップ」と入力し、ファイルのある階層に移動し、「./step1.sh」でスクリプトを実行させます。

step1.shの実行

user@ubuntu-vm:~$ ./step1.sh
Hello World
user@ubuntu-vm:~$

たった2行のスクリプトですが、立派なシェルスクリプトです。とはいえ、実際はプロンプトから1つのコマンド、「echo Hello World」と入力、実行しているのと変わりません(echoコマンドは続く文字列を出力するコマンドです)。

プロンプトから同じコマンドを実行

user@ubuntu-vm:~$ echo Hello World
Hello World
user@ubuntu-vm:~$

スクリプトでの実行とコマンドラインでの実行

シェルスクリプトとは、このようにプロンプトから入力するコマンドの集合体です。プロンプトからの入力は1度に1回しか行えませんが、シェルスクリプトとして扱うと連続して処理する作業も可能になります。ですが、シェルはプログラミング言語ほど複雑な関数やライブラリを持っていません。そこでシェルだけで手に負えない処理は外部のコマンドやperlスクリプトなどに引き渡すことで作業を分担させたり、複数のコマンドの結果を統括することで、より複雑な作業を可能にしてい

「echo Hello World」はお世辞にも「シェルスクリプト」とは呼べません。ですが、単純なスクリプトでも役に立つことはあります。よく知られているbashの機能にヒストリがあります。一度入力したコマンドを記憶しておき、再度同じコマンドを入力したいときには矢印キーの上下を押すと直近に使用したコマンドを表示するものです。直接「history」と入力すると、過去実行したコマンドの履歴が番号付きで表示されます。ここで「!」に続けて履歴の数字をタイプすると、直接そのコマンドを表示させることができます。Linuxで用いるコマンドは非常に多くのオプションがあり、時には数行に渡る長いコマンドを入力することもあります。1文字ミスタイプしたために、長いコマンドをまた入力するのは面倒です。このようなとき、複雑なオプションのついたコマンド入力をシェルスクリプトにしておきます。スクリプトとして記述されていますからミスタイプの心配はありませんし、ファイルを短くしておけばわずかなキータイプで実行できます。