Linux初心者必見!シェルスクリプトの作成手順

Linux初心者必見!シェルスクリプトの作成手順

シェルスクリプトの基礎知識や作成・実行方法、使い方の事例までをまとめました。Linux初心者にもご理解いただけるように、できるだけかみ砕いて解説していければと思います。

目次
  1. シェルスクリプトとは?
  2. シェルスクリプトの使い方(作成から実行まで)
  3. ファイルを作る
  4. コマンドを書き込む
  5. 実行する
  6. シェルスクリプトの使い方3つ
  7. 入力された文字列を出力する
  8. if文
  9. for文
  10. あとがき

シェルスクリプトとは?

はじめに、シェルスクリプトとはどういったものなのか簡単に解説しておきましょう。

シェルスクリプトとは、LinuxなどのUnix向けのコマンドを実行するための方法のこと。シェルスクリプトには複数の処理を記述することができるので、大量の作業を一気に実行させたりして自動化することが可能です。

シェルスクリプトを作るには、専用の文法に従ってコマンドを記述していく必要があります。最もよく使われているのがBシェル(sh)と呼ばれるものです。それ以外にもCシェル(csh)がありますが、書きやすいとされている一方で文法的には問題が指摘されてもいます。基本的には、Bシェル(sh)を使うようにしましょう。

本記事では、Linuxのシェルスクリプトであるbashを作って話を進めていきます。

シェルスクリプトの使い方(作成から実行まで)

シェルスクリプトを作成して実行するまでの手順です。Hello Worldと表示する内容で、シェルスクリプトを作っていきましょう。

ファイルを作る

はじめに、シェルスクリプトのファイルを作成しましょう。viを使ってもいいですし、AtomやEmacsなどのテキストエディタを使ってもかまいません。ここでは、test.shという名前のファイルを作成しました。

コマンドを書き込む

次に、作成したシェルスクリプトに実行させたいコマンドを記述していきます。下のように、先ほどのシェルスクリプト(test.sh)に書き込んでください。


echo "Hello World!!"

シェルスクリプトのファイルであることを1行目で明示したのち、echoを使って「Hello World!!」と表示するコマンドを記述します。

実行する

さて、シェルスクリプトが作成できたところで実際に動かしてみましょう。Terminal(Macの場合)でtest.shが保存してあるディレクトリに移動したのち、下のコマンドを実行してください。


$ sh test.sh

下のようにbashコマンドを使ってもOKです。


$ bash test.sh

Terminal上に「Hello World!!」と表示されれば成功です。

シェルスクリプトの使い方3つ

基本的な使い方がわかったところで、シェルスクリプトの基本文法をいくつかご紹介しましょう。

入力された文字列を出力する

上の例では、指定した文字列を表示するだけでした。Terminalに入力した文字を読み取ることで、対話的な処理を実行させることも可能です。先ほどのコードを、下のように修正してみてください。


read NAME
echo "Hello $NAME!!"

入力内容に合わせて、「Hello ○○○!!」と出力されるようになります。実行結果は下の通り。


$ bash test.sh
○○○
Hello ○○○!!

if文

シェルスクリプトでは、if文などの構文を利用することもできます。下の例では、コマンド実行時の引数が異なる場合は「等しい」と表示して、違う場合は「異なる」と表示します。

$1は一つ目の引数で、$2は二つ目の引数を表しています。ちなみに、$#は引数の個数になります。


if [ "$1" -eq "$2" ]
then
    echo "等しい"
else
    echo "異なる"
fi

実行結果です。


$ bash test.sh 1 1
等しい
$ bash test.sh 1 2
異なる

for文

for文についても見ておきましょう。for文は、指定した条件を満たす場合に、記述された処理を繰り返す構文です。下の例では、0から3までの数に限り、数字が出力されます。


for var in {0..3}
do
    echo $var
done

実行結果は下記の通り。


$ bash test.sh
0
1
2
3

あとがき

シェルスクリプトの基本的な使い方についてご紹介しました。システム開発などのプログラミングだけでなく、日々の業務も効率化してくれることでしょう。シェルスクリプト、ぜひ活用してくださいね。

中西洋平
ライター
中西洋平

関連記事