Rainbow Planet (GT×IT×SP×SA)

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

01_IT技術 (Technology) 01_Linux

Linux – シェルスクリプト入門(Hello World/引数・変数/条件分岐/繰り返し処理)

投稿日:2018年1月8日 更新日:

シェルスクリプトの作成方法について

■目次

(1)シェルスクリプトでHello World
(2)シェルスクリプトで変数/引数を使う
(3)シェルスクリプトで条件分岐を記述
(4)シェルスクリプトで繰り返し(ループ)を記述

(1)シェルスクリプトでHello World

(1-1)viエディタ等で拡張子が”.sh”のファイルを新規作成する。
# viエディタで新規ファイルの作成
vi HelloWorld.sh 
(1-2)以下の文言を記述し、スクリプトを保存する。

「#!/bin/sh」は定型句(おまじない)です。

●シェルスクリプト記述

#!/bin/sh
echo 'Hello World'

(1-3)実行権限を付与し、実行した結果を確認する。
# 実行権限の付与
chmod +x HelloWorld.sh
# スクリプトの実行
/tmp/HelloWorld.sh
●実行結果
  ▼ クリックで展開


目次にもどる

(2)シェルスクリプトで変数/引数を使う

(2-1)最も基本的な変数の使い方

以下の①に従って変数を定義し、②で変数の値を出力する。
注意すべき点として「=」の前後にスペースを入れない事(入れると以下のNG例のようにエラーとなる)
●シェルスクリプト記述

#!/bin/sh
# ①value1という変数を定義
value1=1500
# ②以下の形式で出力
echo $value1
echo "$value1"
echo "${value1}"

●実行結果
NG例
「value1= 1500」と=の後に半角スペースが入ってしまったためにエラーになる。


OK例

(2-2)最も基本的な引数の使い方

引数については”$n”で記述します。”n”は”n個目の引数”の意味の”n”です。
●シェルスクリプト記述

#!/bin/sh
echo $0  # 0個目の引数を出力(シェルスクリプト名)
echo $1  # 1個目の引数を出力
echo $2  # 2個目の引数を出力
echo "${0} ${1} ${2}"  # 0個目~2個目の引数を連結して出力

●実行結果
 上記スクリプトを引数を指定して実行した結果は以下。


目次にもどる

(3)シェルスクリプトで条件分岐を記述

条件分岐(if文)の最も基本的な形は以下で記述します。
・『if [条件] then [結果]』で記述する
・複数条件記述する場合はelse ifに相当する『elif [条件] then [結果]』で記述する
・if条件が複数個になる場合、ANDに相当する『-a』で記述する
・最後に忘れずに『fi』句を書いて条件分岐を閉じる

●シェルスクリプト記述

演算子 意味
-ge
-gt
-lt
-le
#!/bin/sh
if [ $1 -ge 0 -a $1 -lt 30 ]
then echo "${1}点なので、赤点再テストと追加課題です"
elif [ $1 -ge 30 -a $1 -lt 60 ]
then echo "${1}点なので、赤点再テストです"
elif [ $1 -ge 60 -a $1 -lt 90 ]
then echo "${1}点なので、まずまずです"
elif [ $1 -ge 90 -a $1 -le 100 ]
then echo "${1}点なので、優秀です"
fi

●実行結果


目次にもどる

(4)シェルスクリプトで繰り返し(ループ)を記述

繰り返し処理(for文)の最も基本的な形は以下で記述します。
◆繰り返し処理は『for [ループ変数] in `seq [Start ~ End]`』で記述します。
 →seqの前後は「“(バッククォート)」で囲む点に注意
◆整数演算は『expr [変数1] + [変数2]』で記述します。
 →exprの前後も「“(バッククォート)」で囲む点に注意
 →演算子の前後は半角スペースを空ける(文字列認識を防ぐため)
◆繰り返しが終了したら、最後に『done』を記述する
●シェルスクリプト(例)

#!/bin/sh
total=0
old=0
for num in `seq 1 10`
do
old=$total
total=`expr $total + $num`  # +の前後に半角スペースが必要のため注意
echo "前回値(${old})+${num}=${total}"
done

●実行結果


目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-01_IT技術 (Technology), 01_Linux

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

サーブレットとは?その役割やHelloWorldサンプルコードのご紹介

(0)目次&概説 (1) サーブレットの基本  (1-1) サーブレットとは?  (1-2) サーブレットの前身技術との比較  (1-3) サーブレットとJSPの違い  (1-4) サーブレットのHe …

Javaの動的Webプロジェクト作成での事前設定と雛形Webプロジェクト作成

「動的Webプロジェクト」とはHTMLのような静的ページのみならず、ServletやJSPを用いてWebアプリケーション開発をする際に作成します。本記事ではEclipseにて「動的Webプロジェクト」 …

Linuxサーバ(CentOS6)にOracleDB11gをインストールする(その3)

目次 (5)リスナーの作成(netca)  (5-0)リスナーについての概要  (5-1)netcaの起動(netca)  (5-2)リスナー設定  (5-3)リスナー名の設定  (5-4)リスナーの …

JSPとは?役割や基本文法およびHelloWorldのサンプルプログラムの紹介

(0)目次&概説 (1) JSPの基本  (1-1) JSPとは?  (1-2) JSPのHelloWorld (2) JSPの基本文法  (2-1) ディレクティブ  (2-2) アクションタグ   …

VBAによる郵便番号の正規表現マッチ確認関数&置換関数の作成

(0)目次&概説 (1) 正規表現とは (2) 正規表現はどのような場面で利用される? (3) VBAによる正規表現の簡易チェックツール  (3-1) 郵便番号を抽出したい  (3-2) 正規表現が正 …

Top