基本シンタックス
条件を[ ]
で囲むか、test
の後に条件を書きます。
if [ "a" = "a" ]
then
echo 1
else
echo 2
fi
# 1
改行が必要なところに;
を置くことで1行で書くこともできます。
if test "a" = "a"; then echo 1; else echo 2; fi
# 1
[ ! ... ]
やtest !
のように!
を付けると条件の結果が反対になります。
文字列の比較
同じ文字列
上記で使ったように=
で文字列同士が等しいかチェックできます。左右の"a"
と"a"
は等しいので1
が表示されます。
if test "a" = "a"; then echo 1; fi
# 1
違う文字列
違うかをチェックしたい場合は!=
を使います。
if test "a" != "b"; then echo 2; fi
# 2
空文字列
空文字列(''
)かどうか調べるときは-n
(non zero length
)または-z
(zero length
)オプションを使います。
if test -z ''; then echo 1; fi
# 1
if test ! -n ''; then echo 1; fi
# 1
if test -n 'a'; then echo 1; fi
# 1
### 数値の比較
数値の比較では`=`は使いません。代わりに以下のようなフラグを使います。
- `-eq` 左と右が同じ数値か
- `-ne` 左と右が違う数値か
- `-lt` 左のほうが小さい
- `-le` 左は右以下
- `-gt` 右のほうが大きい
- `-ge` 右は左以上
```shell
if test 1 -eq 1; then echo 1; fi
# 1
if test 1 -ne 2; then echo 1; fi
# 1
if test 1 -lt 2; then echo 1; fi
# 1
if test 1 -le 2; then echo 1; fi
# 1
if test 2 -gt 1; then echo 1; fi
# 1
if test 2 -ge 1; then echo 1; fi
# 1