環境
- gitbash 2.32.0.1
いろいろな条件分岐
- シェルスクリプトでは、if分の条件式を[]の中に記述する
if [条件式]; then 処理 fi
- if分はfiで閉じる
- 複数分岐の場合はelifを使用する(多言語でいうelse if)
- [ "A"="B" ]のように[]の間にスペースがないとエラーとなる
- 条件式で<,>,<=,>=は使えない。代わりに-lt(<),-gt(>),-le(<=),-ge(>=)が使用できる
- 数値の比較には、-eq(等しい場合は真)や-ne(等しくない場合は真)を使用する必要がある
条件式が成り立つことをチェックする
Aが空文字であることをチェックする
A = ""
if [ "$1" = "" ]; then
echo "version番号の指定は必須です"
return
fi
Aに値が存在することをチェックする
-n "A"
文字列の長さが1以上だったら真
if [ -n "$1" ]; then
echo "version番号が指定されています"
else
echo "version番号が指定されていません"
fi
AとBが等しいか
普通に、=が使用できる(2つの文字列が等しい場合は真)
if [ "$1" = $2" ]; then
echo "$1と$2は等しいです"
fi
AとBが等しくないか
!=が使用できる(2つの文字列が等しくない場合は真)
if [ "$1" != $2" ]; then
echo "$1と$2は等しいです"
fi
条件式が成り立たないことをチェックする
Aが空文字ではないことをチェックする
A != ""
if [ "$1" != "" ]; then
echo "version番号が指定されています"
else
echo "version番号が指定されていません"
fi
-z "A"
文字列の長さが0の場合は真
Aに値が存在しないことをチェックする
if [ -z "$1" ]; then
echo "version番号の指定は必須です"
return
fi
以下でもOK
if [ ! "$1" ]; then
echo "version番号の指定は必須です"
return
fi
AND・OR条件
ANDなら&&、ORなら|| が使用できる
if [ $1 ] && [ $2 ]; then
echo "$1と$2の両方が存在します"
fi
まとめ
いかがでしたでしょうか。本記事では、シェルスクリプトの基本であるif分を用いた条件の記述方法について紹介しています。ぜひ参考にしてプログラムを組んでみてください。