条件分岐(if) ある条件によって行わせる処理が異なる場合に条件分岐(if文)を使用します。条件が不成立の時に実行するelseは省略することもできます。
- 構文
if [条件];then 条件が成立した時に実行するコマンド else 条件が不成立の時に実行するコマンド fi
- ファイル形式のチェック
-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のどちらかが真であれば真である。
Last-modified: 2009-12-28 (月) 15:04:47 (5232d)