ここでは、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を出力