Shell の基礎知識

【Shellスクリプト】シェルスクリプトの基本事項!

この記事は、Linuxについて勉強している初心者の方向けに「Shellスクリプト」について解説します。最後まで読んで頂けましたら、Shellスクリプトはどのような役割を担っているのか?を理解出来るようになっているでしょう。

なので、是非最後まで読んで下さいね。

シェルスクリプトの基本事項

「シェルスクリプト」とは、カーネルに対して処理をさせたい命令をまとめた「プログラム」ファイルのことです。「Shell」はシェルスクリプトの上から順番に処理していきますので、サーバー管理のような単純な作業をまとめておくと自動化することができます。

シェルスクリプトで記述されたコマンドは、すべて終了ステータスを持ち、終了時の真偽によってその後の条件を判断します。

シェルスクリプトを記述するには、始めの1列目に「#!」から始まる「シェバン」「シバン」といわれる記述をしなければいけません。

#!/bin/sh 👈 shはBシェルを指しています

command ●●● 👈 2行目から、シェルスクリプトを記述します。

ココがポイント

シェバンは、必ずシェルスクリプトの第1行目に書きます。シェルスクリプトの頭に「#!」という文字列があると、それに続くコマンド(ここでは/bin/sh)が動作します。

つまり、シェルスクリプトを実行するときに使用するシェルを指定するということです。

ちなみにKシェルを動かす場合なら「#!/bin/ksh」と記述します。同様に2行目からはスクリプト(コマンド)を羅列していきます。

コメントの付け方「#」

シェルスクリプトを書いていると、あとで読み返しているときに、コードが何の処理をしているのが分からなくなってしまうことがよくあります。そのため、読み返したときにコードの説明をコメントアウトしておくことが大切です。

# 「#」で始まるこの行は、コメントとして解釈され実行対象にはなりません。
comand・・・

シェルスクリプトにコメントを書く場合、「#」を入力してからコメントを書いていきます。注意点として、「”」や「’」で囲んでいると文字列として扱われてしまいますから覚えておきましょう。

アドバイス

シェルスクリプトを記述するための書式をあらかじめ「ひな形(テンプレート)」化しておくことをお勧めします。また、シェルスクリプトは、改行位置やインデントなどを、かなり自由に書き込めます。特にこだわりがない場合は、インデント幅は空白2文字をお勧めします。

権限の設定

シェルスクリプトを書き終わったら、実行する前に権限の設定が必要になります。

下記のコマンドを入力して実行すると権限の設定は完了です。

chmod 755 <スクリプトファイル名>.sh

シェルスクリプトの実行

シェルスクリプトには、コマンドとして実行する以外に、「sh」の引数に指定して実行する方法など、いくつかの実行方法があります。

最もオーソドックスな実行方法は、「sh」の引数に実行したいシェルスクリプトを指定して実行する方法です。

$ sh <スクリプトファイル名>.sh

ココに注意

シェルスクリプトを実行させるためには、実行コマンドへ
「sh /<パス(所在)>/<シェルスクリプト名>」と入力します。
シェルスクリプト名だけを指定しても、シェルスクリプトの所在が分からないと実行エラーを起こします。

コマンドの終了ステータス

シェルスクリプトは、実行終了時にステータスコード(リターンコード)を返却します。

終了ステータス 真偽値
0 真(true)
0以外 偽(false)

シェルスクリプトでは、各コマンドの終了ステータスが「0」なら「真(true)」、「0以外」なら「偽(false)」として扱われます。主な使用用途は、if文、while分、&&、||の条件判定に利用されます。

終了ステータスは、コマンドの実行直後に特殊パラメータ「$?」を参照することによって得ることが出来ます。また、シェルスクリプトの終了ステータスは、「exit」コマンドによって返却されます。

試しに「true」コマンド、「false」コマンドを使用して、確認してみましょう。

# trueコマンドの実行
$ true
$ echo $?

# falseコマンドの実行
$ false
$ echo $?

コンソールへ直接手入力して、終了ステータスコードを確認します。

trueやfalseコマンドの直後に特殊パラメータ$?を参照すると、それぞれ「0」や「1」の値が表示されることがわかります。

ひな形の活用

プログラム全般に言えることですが、人って「あるモノから間違いを見つける」のは得意ですが、「足りないものを見つける」のは苦手な生き物です。1~10まで作成時に考えるよりも、予め必要箇所をテンプレート化しておくだけで格段に労力が下がります。

そこでシェルスクリプトを作成する上で「ひな形(テンプレート)」を活用しましょう。予め、シェルスクリプトのひな型を用意しておくことで、「可読性」や「保守性」を高めるメリットがあります。

シェルスクリプトの作成には、下記のひな型を丸ごとコピーして、コンソールに貼り付けます。該当する箇所へシェルスクリプトを埋め込んでから、名前をつけて保存するだけです。

 ファイルを編集する場合、LinuxなどのUNIX系OSでは、テキストファイルの改行コードは標準でLFのみになるため、とくに気にする必要はありませんが、Windowsでテキストファイルを編集する場合、標準の改行コードがCR+LFになってしまうため、注意してください。

よく読まれている記事

1

Shellとは? Shellとは、人間の理解できる言葉を機会へ伝えるプログラムです。 Linux環境でコマンドプロンプト画面を開いているとき、常にShellは起動している状態です。 「Shell」とは ...

2

Linuxは主にサーバー用として利用されるOSです。大規模な基幹システムの開発者、ロボットや家電開発等の組み込み系エンジニア、ネットワーク機器やデータベースに携わるインフラエンジニアは触れることが多い ...

3

プログラミング言語を習得しようと思った時、必ずと言っていいほど候補として挙げられるのが「Java」というプログラミング言語です。 「Java」は、現在日本で最も使われている言語であり、非常に人気のある ...

4

この記事は、Linuxについて勉強している初心者の方向けに「Shellスクリプト」について解説します。最後まで読んで頂けましたら、Shellスクリプトはどのような役割を担っているのか?を理解出来るよう ...

-Shell の基礎知識