[bash]if文 構文/比較演算子/条件式

bash

色々説明とかは記載例とかは後述。構文、比較演算子一覧など先に説明します。

構文、条件式

構文

「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 / or 条件

ちなみにand(-a)は「&&」、or(-o)は「||」で指定も可能。

NOT条件

各種条件の否定(NOT)を真とするする条件式。条件式の前に「!」を加えるとNOT条件となる。

オプション説明
! <条件式>条件式が偽の場合しんとなる。
NOT条件

コメント

タイトルとURLをコピーしました