【Linux】.shファイルとは?実行方法とシェルスクリプトの記述について

時計 2022.05.16 / 時計

【Linux】.shファイルとは?実行方法とシェルスクリプトの記述について

本記事ではLinux系OSで利用される、.shファイルについて解説していきます。.shファイルには処理を実行する複数のコマンドを記述する、いわゆるシェルスクリプトです。

Linuxを使っているならば、必ず.shファイルを利用する機会があります。.shファイル(シェルスクリプト)の作成や実行方法は必須知識と思ってください。

.shファイルを知るためにはシェルやシェルスクリプトについて知っておく必要があるので、まずはそれら用語について解説します。

本記事を通して.shファイルの知識を深めてください。

.shファイルを知るための事前知識

シェル(shell)とは

シェルとはLinuxのカーネルとユーザーの仲立ちをするユーザインターフェースです。シェルという名前は「殻」を意味する「shell」からきています。

名前の通り、Linuxカーネルの周りをシェルが覆っているイメージをするとわかりやすいです。

Linux:シェルとカーネル

ユーザーのコマンド実行から結果が返ってくるまでの流れは次のようになります。

  1. ユーザーはシェルによって表示されたコマンドプロンプトにコマンドを入力・実行
  2. シェルは命令(コマンド)を受け取り解釈
  3. シェルは解釈した命令をカーネルに渡す
  4. カーネルは命令を実行
  5. カーネルは処理結果をシェルに渡し、シェルは結果をユーザーに表示

Linux上で動くシェルはたくさん種類があります。ほとんどのLinuxディストリビューションではbashが標準のシェルです。

シェルスクリプトとは

シェルスクリプトとはOSを操作するシェル上で実行できる処理をまとめたプログラムです。

つまり処理を実行する複数のコマンドが記述されたプログラム(スクリプト)ということです。

シェルスクリプトはインタプリタ型言語であり、中身をインタプリタが解釈して実行します。インタプリタはシェルスクリプトの1行目に記述して定義します。

C言語やPythonといったプログラミング言語のように変数や制御構文(繰り返し、条件分岐)ができるため、高度な操作が可能になります。

shファイル(シェルスクリプト)

.shファイルとは

.shはシェルスクリプトであることを表す拡張子であり、Linux系OSで利用されるファイルです。

つまり.shファイルはシェルスクリプトであり、シェルを使用して処理を実行するプログラムが記述されています。

実際のところLinux系OSでは拡張子は付けなくてもいいです。「.sh」をファイルに付けるのはシェルスクリプトであることがわかるようにするためです。

シバンの記述:1行目

シェルスクリプト(.shファイル)の1行目には使用するインタプリタを記述します。

「#!」の後にインタプリタの絶対パスを記述します。この1行目のことをシバン(shebang)と呼びます。以下に主に使用するシバンを記します。

シバン インタプリタ
#!/bin/sh Bourneシェル
#!/bin/bash bash
#!/usr/bin/python Python

.shファイルのサンプル

以下にシェルスクリプトのサンプルを記します。

#!/bin/sh
var="変数です"
date=$(date '+%Y%m%d')
echo ${var}
echo ${date}

上記では変数に文字列や日付を格納し、echoで画面上に表示しています。

変数だけでなく制御構文の条件分岐if文や繰り返しのfor文もシェルスクリプトに使用できます。

.shファイル(シェルスクリプト)の実行方法

シェルスクリプトを実行する方法は以下の通りです。どれを実行しても結果は同じです。

実行コマンド 説明
./シェルスクリプト シバンを読み込み、実行するには実行権が必要
bash シェルスクリプト bashでスクリプトを実行、シバン読み込みはなし
. シェルスクリプト シェルがスクリプトを実行、シバン読み込みはなし

例えばtest.shをbashで実行するには次のコマンドを実行します。

bash test.sh

まとめ

本記事「【Linux】.shファイルとは?実行方法とシェルスクリプトの記述について」はいかがでしたか。

ここで紹介したことはLinuxを利用する上で必須の知識となりますので、理解を深めて実際にシェルスクリプトを作成して触ってみてください。