Shell Script 2

本日もシェルスクリプト。

非常に単純な例だけしかやっていないが、最初のうちはゆっくりやらないと続かないので仕方ないですかね

環境変数を使った簡単なスクリプトは、次のようになります。

#! /bin/sh
# HOME環境変数の表示
echo $HOME
# PATH環境変数の表示
echo $PATH
# コマンドプロンプト環境変数の表示
echo $PS1
# シェルスクリプト名の表示
echo $0
# 渡されたパラメータの数の表示
echo $#
# シェルスクリプトのプロセスIDの表示
echo $$

パラメータを扱う場合は、$1とかを使います。

#! /bin/sh
# 最初のパラメータ
echo $1
# 2番目のパラメータ
echo $2
# すべてのパラメータのリストを1つの変数であらわせる
echo $*
# パラメータの利用例
echo “Hello, $1”

条件判定をして、処理を分岐するには、testコマンドとifを使います。普通は、testの変わりに[ ] を使います。

#! /bin/sh
# 条件の判定には、testコマンドを使う
# echoVal.shが存在するか否かを判定する例
if test -f echoVal.sh
then
echo “File exists.”
fi
# testコマンドを[ ]に置き換えることができる
# [の後と、]の前に半角空白が入ることに注意
if [ -f echoVal.sh ]
then
echo “File exists.”
fi
# 読みやすくするためには、次のように記述する
if [ -f echoVal.sh ]; then
echo “File exists.”
fi

文字列比較には、=, 数値の比較演算には -eq, -ne, -gt, -lt, -ge, -le などを使います。

#! /bin/sh
# yesとyesは等しいので表示される
if [ “yes” = “yes” ]; then
echo “Yes”
fi
# yesとnoは等しくないので非表示
if [ “yes” = “no” ]; then
echo “No”
fi
# 1と2は等しくないので非表示
if [ 1 -eq 2 ]; then
echo “1 = 2”
fi
# 2と2は等しいので表示される
if [ 2 -eq 2 ]; then
echo “2 = 2”
fi
# 1と2は等しくないので表示される
if [ 1 -ne 2 ]; then
echo “1 is not equal 2.”
fi
# 1>2は真ではないので非表示
if [ 1 -gt 2 ]; then
echo “1 > 2”
fi
# 1<2は真なので表示される if [ 1 -lt 2 ]; then echo "1 < 2" fi # 1<=2(1は2以下)は真なので表示される if [ 1 -le 2 ]; then echo "1 <= 2" fi
同じカテゴリの記事: Linux