I-8-3. シェルスクリプトによる定形処理

シェルの種類やシェルスクリプトの概念、対話的シェルの操作方法を説明する。スクリプトを作成してから実行するまでの手順を示し、また基本的なシェルコマンドやシェルスクリプトの文法、記述方式について言及する。

【学習の要点】

* シェルスクリプトとは複雑な繰り返し処理や条件分岐を使って、複数のコマンドを逐次実行できるようにした簡易プログラムである。

* シェルスクリプトは、1行目にshebangを記述、2行目以降にプログラム本体を記述したテキストファイルとして作成する。

図I-8-3. シェルスクリプトの作成

【解説】

1) シェルスクリプトとは

複数のコマンドをまとめて実行することで、繰り返しの多い処理や一連の処理を簡単に実行できるようにした簡易プログラム。オペレータの指示をカーネルに伝えるためのシェルが、直接解釈し実行することができる。特徴は以下の通り。

* シェルごとに独自の文法が採用されている。

* 複雑な繰り返し処理や条件分岐などに対応している。

* コマンドを、そのままプログラムとして記述できる。

* 対話的なスクリプトを作成することも可能である。

* 引数を指定することで挙動が代わるスクリプトも作成することが可能である。

2) スクリプトの作成から実行まで

シェルスクリプトは、viエディタなどを使ってコマンドなどをまとめたテキストファイルとして作成する。

* 1行目にはshebangを含める。

これはこのスクリプトの実行時に、どのインタプリタを使用するかをOSに伝えるものである。

- Linuxの標準シェルであるbashの場合は、「#!/bin/bash」と明記する。

* 2行目以降に、実行させたいコマンドを並べて記述する。

- コメント行は先頭に「 # 」を記述する。

* スクリプトファイルのパーミッションを、実行可能に変更する。

* パスを指定したディレクトリに配置するか、パスを指定しながらスクリプトを実行させる。

- カレントディレクトリにある場合は、「./(スクリプトファイル名)」と指定する。

3) シェルスクリプトの構文

以下に基本的なコマンドの文法を明記する。

* 標準出力への表示

- printf文: 標準出力に対して、変数の値や文字列などをまとめて表示する。

例) printf "number is %d" $number

- echo文: 標準出力に対して、文字列を表示する。

例) echo "Hello World"

* 標準入力からの入力

- read文: 入力された文字列を指定した変数に設定する。

例) read NUMBER

* 繰り返し処理

- for ループ: 変数に指定範囲内の数値を割り当てて、繰り返す。

例) for number in $( seq 1 10 )

* 判断文

- if 文: 変数の持つ値によって処理を変更する。

例) if [ number != 0 ]; then 命令 fi

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。

フォーラム会員企業専用

記事配信

コンテンツ配信

ユーザログイン