#navi(../)

* if文のサンプル・数値比較編 [#m6bac128]
bashを利用しif .. then .. fi を利用したサンプルシェルスクリプトを以下に記します。

#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* 関連記事 [#f0024f82]
-[[if文のサンプルシェルスクリプト・ファイル・ディレクトリ編>逆引きシェルスクリプト/if文のサンプル・ファイル・ディレクトリ編]]
-[[if文の条件式でand, or, notを使う方法>逆引きシェルスクリプト/if文の条件式でand, or, notを使う方法]]
-[[case…esacのサンプルシェルスクリプト>逆引きシェルスクリプト/case…esacのサンプルシェルスクリプト]]

* 数値比較方法 [#d4a7764e]
下表に記す文字列により、数値比較ができます。
|-eq|等しいかをチェック 数値 = 数値|''eq''ual|
|-ne|異なるかをチェック 数値 ≠ 数値|''n''ot ''e''qual|
|-lt|数値 < 数値をチェック|''l''ess ''t''han|
|-le|数値 ≦ 数値をチェック|''l''ess than or ''e''qual|
|-gt|数値 > 数値をチェック|''g''reater ''t''han|
|-ge|数値 ≧ 数値をチェック|''g''reater than or ''e''qual|

数値の比較条件が成り立つ場合、$?に0がセットされます。~
数値の比較条件が成り立たない場合は、$?に1がセットされます。~

このeq, ne, lt, le, gt, geなどは、<>が使えなかった時代のFORTRAN言語の表記を踏襲したらしいです。~
(正確な情報かは保証できませんが…)

* 数値比較のサンプルシェルスクリプト [#cd53b98f]
#ref(sample.sh)
以下のサンプルシェルスクリプトは、2つの数値引数を比較します。~
尚、引数に数値以外の文字列を使用した場合のエラー処理は行っていません。

 #!/bin/bash
 
 function usage {
   echo Usage:
   echo -e \\t`basename $0` num1 num2
   exit 1
 }
 
 if [ $# -ne 2 ]; then
   usage
 fi
 
 # -eq : equal
 if [ $1 -eq $2 ]; then
   echo "$1 = $2"
 fi
 
 # -ne : not equal
 if [ $1 -ne $2 ]; then
   echo "$1 != $2"
 fi
 
 # -lt : less than
 if [ $1 -lt $2 ]; then
   echo "$1 < $2"
 fi
 
 # -le : less than or equal
 if [ $1 -le $2 ]; then
   echo "$1 <= $2"
 fi
 
 # -gt : greater than
 if [ $1 -gt $2 ]; then
   echo "$1 > $2"
 fi
 
 # -ge : greater than or equal
 if [ $1 -ge $2 ]; then
   echo "$1 >= $2"
 fi


* サンプルシェルスクリプトの実行結果 [#ab94552a]

 $ ./sample.sh 1 1
 1 = 1
 1 <= 1
 1 >= 1
 
 $ ./sample.sh 1 2
 1 != 2
 1 < 2
 1 <= 2
 
 $ ./sample.sh 2 1
 2 != 1
 2 > 1
 2 >= 1

#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS