条件分岐(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 = 文字列22つの文字列が等しければ真である。
    文字列1 != 文字列22つの文字列が等しくなければ真である。
  • 数値のチェック
    数値1 -eq 数値22つの数値が等しければ真である。
    数値1 -ge 数値2数値1が数値2以上であれば真である。
    数値1 -gt 数値2数値1が数値2より大きいのであれば真である。
    数値1 -le 数値2数値1が数値2以下であれば真である。
    数値1 -lt 数値2数値1が数値2未満であれば真である。
    数値1 -ne 数値22つの数値が等しくなければ真である。
  • 論理結合
    !条件条件が偽であれば真である。
    条件1 -a 条件2条件1と条件2の両方が真であれば真である。
    条件1 -o 条件2条件1と条件2のどちらかが真であれば真である。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-12-28 (月) 15:04:47 (5176d)