1.はじめに
今回は以前作成した四則演算のスクリプトに続き、
if文を利用した数値比較スクリプトを作成しようと思います。
※LinuCの資格学習にもなるので、作成してみました。
2.実行環境
今回作成した実行環境について、以下の通りです。
■実行環境
Operating System: CentOS Linux 7 (Core)
Kernel: Linux 3.10.0-1160.el7.x86_64
Architecture: x86-64
3.スクリプト作成
前回同様に『work』フォルダを作成し、シェルスクリプトを作成します。
※フォルダ名・ファイル名は、分かりやすいもので大丈夫です。
mkdir work; cd /root/work; pwd
vi <ファイル名>.sh
#!/bin/bash
※上記シバンを入力します。
今回はファイル内の情報を変数へ格納するため、以下コマンドで指定します。
※変数に格納する数値はテキストにて準備します。
A=$(<A.txt)
B=$(<B.txt)
if文の条件式を用いて、それぞれのファイルを比較する条件式を作成します。
#各変数を比較して、同じ数値か確認します。
if [ "$A" -eq "$B" ];
then
echo "両チーム引き分け"
#各変数の数値が異なる場合、どちらが大きいか比較します。
elif [ "$A" -gt "$B" ];
then
echo "Aチームの勝利"
else
echo "Bチームの勝利"
fi
4. 実行
実行する前に変数に格納するファイルを2つ作成し、数値を1つ入力する。
その後、対象スクリプトに実行権限を付与し、確認します。
#変数に格納するファイル作成
vi <ファイル名>
#実行権限を付与する
chmod x <ファイル名>.sh
chmod 744 <ファイル名>.sh
#どちらでも実行権限を付与できます。
---
ls -l
対象のスクリプトを実行します。
./<ファイル名>.sh
/root/work/<ファイル名>.sh
bash <ファイル名>.sh
source <ファイル名>.sh
. <ファイル名>.sh
実行結果は以下の通りです。
##Aチームが大きい場合
# source sample3.sh
結果はAチームの勝利!!
各チームの数値はこちら
Aチーム:9
Bチーム:4
##両チームが引き分けの場合
# source sample3.sh
結果は両チーム引き分け
各チームの数値はこちら
Aチーム:4
Bチーム:4
5.完成形
今回自分が作成したシェルでは、下記の内容になりました。
#!/bin/bash
#各変数に入力した引数を設定する
A=$(<A.txt)
B=$(<B.txt)
#if文にてAとBの変数を比較
if [ "$A" -eq "$B" ];
then
echo "結果は両チーム引き分け"
elif [ "$A" -gt "$B" ];
then
echo "結果はAチームの勝利!!"
else
echo "結果はBチームの勝利!!"
fi
#各変数の値を出力する
echo "各チームの数値はこちら"
echo "Aチーム:"$A
echo "Bチーム:"$B
6.まとめ
LinuCの資格学習のアウトプットとして、簡易的なスクリプトを作成いたしました。
やはり、試行錯誤してスクリプトを作成するとても勉強になり楽しくできました。
※残課題として、複数の数値を指定した場合の動作を考えようと思いましたが、
気力がなくなった為、次回以降作る機会があれば、考えようと思います。