bashスクリプト 入門編5回目です。
前回までの説明で、初歩的な変数の使い方は掴めましたか?今回は判定文です。
前回迄で以下の初歩的な事を実践してみました。
・文字列の表示方法(echoコマンド)
・引数の取得(位置パラメータ)
・変数の宣言
・変数の出力
今回からはもう少しだけスクリプトっぽい事をやる事にします。
前回作成したスクリプトは以下の様な物でした。
#!/bin/bash
V_OPTION=$1
echo "Hello${V_OPTION}World!!"
今回はこのスクリプトを元に新たなスクリプトを作成します。
前回のスクリプトでは、以下の事を実装していました。
・スクリプトの第一引数に渡された文字列を含めて、「Hello
[第一引数]World!!」と表示する
これを以下の新たな条件に変更します。
・第一引数が「bash」だったら「Hello bash World!!」と表示し、「Linux」だったら「Hello Linux OS!!」と表示する。
このように「条件」が分岐したり複数になる事ををやる時には「条件判定文」を使用します。
今回は条件判定文の基本となる「
if文」について勉強したいと思います。
if文の基本的な構文は以下の通りです。
if 条件判定文1
then
条件判定文1が正しい時の処理
elif 条件判定文2
then
条件判定文1が正しくなく、且つ、条件判定文2が正しい場合の処理
else
条件判定文1も条件判定文2も正しくない場合の処理
fi
上記の文の組み合わせによって
if文は構成され、最期はifを反対から書いた「
fi」で終わります。
上記の様に、判定するべき条件項目が2つではなく、真偽2つだけの
if文も書けますし、真だけを判定する事もできます。
●条件判定文が真の時だけ何か処理を行う場合
if 条件判定文1
then
条件判定文1が正しい時の処理
fi
●条件判定文が真の時と偽の時に処理を行う場合
if 条件判定文1
then
条件判定文1が正しい時の処理
else
条件判定文1が正しくない場合の処理
fi
さて、今回の条件の場合、どのような形の
if文を書けば良いでしょうか?
・第一引数が「
bash」だったら「Hello bash World!!」と表示する。
・第一引数が「
Linux」だったら「Hello Linux OS!!」と表示する。
上記の様に「真」条件が2つの判定文を書けば良い事になります。
if 第一引数が「bash」かを判定する条件判定文
then
echo "Hello bash World!!"
elif 第一引数が「Linux」かを判定する条件判定文
then
echo "Hello Linux OS!!"
fi
こうなると、8割方完成ですね。
あとは「
条件判定文」を書くだけです。
条件判定文には、便利なコマンドが用意されています。「
test」コマンドです。
この「
test」コマンドは、条件式が真(0)か偽(1)かを判定してくれます。
if文ととても相性の良いコマンドです。
早速「
test」コマンドを使用して、スクリプトを完成させてみます。
エディタを使って「helloworld3.sh」に以下を書いて実行してみましょう。
#!/bin/bash
V_OPTION=$1
if test ${V_OPTION} = "bash"
then
echo "Hello bash World!!"
elif test ${V_OPTION} = "Linux"
then
echo "Hello Linux OS!!"
fi
[root@xen01 ~]# chmod +x helloworld3.sh
[root@xen01 ~]# ./helloworld3.sh bash
Hello bash World!!
[root@xen01 ~]# ./helloworld3.sh Linux
Hello Linux OS!!
[root@xen01 ~]#
ちゃんと出力されましたか?
・第一引数が「
bash」だったら「Hello bash World!!」と表示する。
・第一引数が「
Linux」だったら「Hello Linux OS!!」と表示する。
確かに上記の要件を満たしてますので、一応これで完成です。
ですが、このスクリプトには色々な問題点が秘められています。
次回は、このスクリプトの問題点を修正していきます。
テーマ:Linux - ジャンル:コンピュータ
- 2008/10/12(日) 03:14:53|
- bashスクリプト入門
-
| トラックバック:0
-
| コメント:0