#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)