条件分岐(if)
ある条件によって行わせる処理が異なる場合に条件分岐(if文)を使用します。条件が不成立の時に実行するelseは省略することもできます。
- ファイル形式のチェック
| -b ファイル名 | 指定したファイルがブロックデバイスファイルなら真である。 |
| -c ファイル名 | 指定したファイルがキャラクタデバイスファイルなら真である。 |
| -d ファイル名 | 指定したファイルがディレクトリなら真である。 |
| -f ファイル名 | 指定したファイルが通常ファイルなら真である。 |
| -L ファイル名 | 指定したファイルがシンボリックリンクなら真である。 |
| -p ファイル名 | 指定したファイルが名前付きパイプなら真である。 |
| -S ファイル名 | 指定したファイルがソケットなら真である。 |
- ファイルパーミッションのチェック
| -g ファイル名 | 指定したファイルにSGIDがセットされていれば真である。 |
| -k ファイル名 | 指定したファイルにスティッキービットがセットされていれば真である。 |
| -r ファイル名 | 指定したファイルが読み取り可能なら真である。 |
| -u ファイル名 | 指定したファイルにSUIDがセットされていれば真である。 |
| -w ファイル名 | 指定したファイルが書き込み可能なら真である。 |
| -x ファイル名 | 指定したファイルが実行可能なら真である。 |
- その他のファイルのチェック
| -e ファイル名 | 指定したファイルが存在すれば真である。 |
| -s ファイル名 | 指定したファイルのファイルサイズが0より大きければ真である。 |
- 文字列のチェック
| -n 文字列 | 文字列の長さが0より大きければ真である。 |
| -z 文字列 | 文字列の長さが0であれば真である。 |
| 文字列1 = 文字列2 | 2つの文字列が等しければ真である。 |
| 文字列1 != 文字列2 | 2つの文字列が等しくなければ真である。 |
- 数値のチェック
| 数値1 -eq 数値2 | 2つの数値が等しければ真である。 |
| 数値1 -ge 数値2 | 数値1が数値2以上であれば真である。 |
| 数値1 -gt 数値2 | 数値1が数値2より大きいのであれば真である。 |
| 数値1 -le 数値2 | 数値1が数値2以下であれば真である。 |
| 数値1 -lt 数値2 | 数値1が数値2未満であれば真である。 |
| 数値1 -ne 数値2 | 2つの数値が等しくなければ真である。 |
- 論理結合
| !条件 | 条件が偽であれば真である。 |
| 条件1 -a 条件2 | 条件1と条件2の両方が真であれば真である。 |
| 条件1 -o 条件2 | 条件1と条件2のどちらかが真であれば真である。 |