色々説明とかは記載例とかは後述。構文、比較演算子一覧など先に説明します。
構文、条件式
構文
「if」で書き出し、「fi」で締める。複数条件をつける時は「elif」
if [ (条件式) ] ; then
処理内容1
elif [ (条件式) ] ; then
処理内容2
else
処理内容3
fi
比較演算子
数値と文字列で変わる。それぞれ整理。
比較演算子 | 説明(真となる条件) |
<int1> -eq <int2> | 等しい場合(=) |
<int1> -ne <int2> | 等しくない場合(!=、<>) |
<int1> -gt <int2> | <int1>が大きい場合(>) |
<int1> -ge <int2> | <int1>が<int2>以上の 場合(>=) |
<int1> -lt <int2> | <int1> が小さい場合(<) |
<int1> -le <int2> | <int1> が <int2> 以下の 場合(<=) |
比較演算子 | 説明(真となる条件) |
<str1> = <str2> | <str1>と<str2>が等しい場合 |
<str1> != <str2> | <str1>と<str2>が 等しくない場合 |
-n <str> | <str>が1文字以上の場合 |
-z <str> | <str>の長さが0の場合 |
ファイルの検査式
文字列や数値ではなく、ファイルやディレクトリの検査オプション
オプション | 説明真となる条件) |
<file1> -nt <file2> | <file1>が新しい場合 |
<file1> -ot <file2> | <file1>が古い場合 |
-d <path> | <path>がディレクトリの場合 |
-f <path> | <path>がファイルの場合 |
-e <file> | <file>が存在する場合 |
-s <file> | <file> のファイルサイズが0以上の場合 |
-r <file> | <file>に読み取り権限がある場合 |
-w <file> | <file>に書き込み権限がある場合 |
-x <file> | <file>に実行権限がる場合 |
and / or 条件及び優先度の変更
複数条件を指定する場合、ANDやOR条件を指定することができる。
優先度が and検索>or検索のため3つ以上条件をつける場合は注意。
オプション | 説明 |
<条件式1> -a <条件式2> | and 条件。条件式1が真 かつ 条件式2が真の場合 真となる |
<条件式1> -o <条件式2> | and 条件。条件式1 か 条件式2どちらかが真の場合 真となる |
( <条件式1> -o <条件式2>) -a <条件式3> | ()内(ここでは条件式1と条件式2)が先に検査され、この結果と 条件式3が検査される。 |
ちなみにand(-a)は「&&」、or(-o)は「||」で指定も可能。
NOT条件
各種条件の否定(NOT)を真とするする条件式。条件式の前に「!」を加えるとNOT条件となる。
オプション | 説明 |
! <条件式> | 条件式が偽の場合しんとなる。 |
コメント