Shellスクリプト

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

2020年4月14日

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

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

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

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

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

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

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

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

ココがポイント

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

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

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

コメントの付け方「#」

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

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

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

アドバイス

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

ひな形の活用

プログラム全般に言えることですが、人って「あるモノから間違いを見つける」のは得意ですが、「足りないものを見つける」のは苦手な生き物です。

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

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

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

権限の設定

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

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

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

独立前は、誰もが不安でいっぱい。近い将来、フリーランスとして独立を考えている方が独立初期に躓かないために「独立前にやるべきことチェックリスト」をご紹介します。 当記事は前編となる「お金まわり編」。全て ...

2

ゲームなどのエンタメ分野での導入が進んでいるVR。言葉自体は耳にしたことがあっても、その意味を詳しく知らないという人も多いのではないでしょうか。また、次世代の新たな技術をビジネスに積極的に活用していく ...

3

フリーランスの確定申告には、青色申告と白色申告の2種類があります。いったいどちらの申告方法を選ぶべきなのでしょうか。 この記事では、青色申告と白色申告、それぞれのメリット・デメリットを把握することでベ ...

4

フリーランスの仕事場は、自宅をはじめとし、カフェや図書館、コワーキングスペースなど自由に選べます。しかし全ての場所で100%集中ができるどうかは、人それぞれです。どのような環境が自身の仕事場として快適 ...

5

フリーランスのITエンジニアとして、一番難しいのは「自己管理」と言えるでしょう。 自分の体調管理はもとより、仕事のスケジュール等すべて自分で管理します。もちろんフリーランスに有給休暇等ありませんから休 ...

-Shellスクリプト

Copyright© Beエンジニア , 2020 All Rights Reserved.