条件分岐

基本シンタックス

条件を[ ]で囲むか、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` 右は左以上

```sh
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