[ B シェル ] if 文で and 演算と or 演算 ( -a / -o )

Pocket

ここでは、B シェルで if 文内の and 演算と or 演算を行うサンプルスクリプトを掲載しています。

スポンサーリンク

or 演算のサンプル

or 演算を行うときには -o で行うことができます。

#!/bin/sh

# 第1パラメータを取得
team=$1

if [ $team = "Hawks" -o $team = "Fighters" ] ; then # ホークスまたはファイターズの場合
     echo "強いです";
elif [ $team = "Baystars" ] ; then                  # ベイスターズの場合
     echo "弱いです";
else                                                # その他の球団の場合
    echo "微妙です";
fi

B シェルで処理の分岐を行う場合は if ~ elif ~ else ~ fi 構文ですが、紛らわしいので記述には気をつけましょう。また、文字列の比較は == ではなく = です。ここは VB の仕様と同じです。

and 演算

or 演算が -o でしたので、想像通り and 演算は -a です。

#!/bin/sh

str1="aaa"
str2="bbb"

if [ $str1 = "aaa" -a $str2 = "bbb" ] ; then
    echo "真";  // こちらが出力される
else
    echo "偽";
fi

if [ $str1 = "aaa" -a $str2 = "ccc" ] ; then
    echo "真";
else
    echo "偽";  // こちらが出力される
fi
コマンドラインパラメータの取得

最初の or 演算のサンプルにあるように $1, $2 のようにコマンドラインパラメータを取得することができます。

$0 : 起動されたスクリプトファイルパス
$1 : コマンドラインパラメータ1

以降 $2, $3, ・・・ と続きます。

コマンドラインパラメータ数の取得方法

$0 に入っているスクリプトのファイルパスはパラメータ数にはカウントされませんので注意が必要です。

#!/bin/sh
if [ $#argv -ne 3 ] ; then
    echo "パラメータの個数は3でなければならない";
    exit
fi

echo $0 # 起動されたスクリプトファイルパスを出力
echo $1 # パラメータ1を出力
echo $2 # パラメータ2を出力
echo $3 # パラメータ3を出力

 

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *