Bash
Linux

bashのif文判定サンプル

基本構文

if 条件式1 ; then
  処理1
elif 条件式2 ; then
  処理2
else
  処理3
fi

testコマンド

オプション 使用例 説明 数式サンプル
-eq test num1 -eq num2 num1 と num2 が等しければ真 num1=num2
-ne test num1 -ne num2 num1 と num2 が等しくなければ真 num1≠num2
-lt test num1 -lt num2 num1 が num2 より小ならば真 num1<num2
-le test num1 -le num2 num1 が num2 以下ならば真 num1≦num2
-gt test num1 -gt num2 num1 が num2 より大ならば真 num1>num2
-ge test num1 -ge num2 num1 が num2 以上ならば真 num1≧num2

testコマンドは[]で代用可能
[ ]と[[ ]]はワード分割とパス名展開がされないという違いあり

val='hoge hoge'
[ $val == hogehoge ]; echo $?
bash: [: 引数が多すぎます
2

val='hoge hoge'
[ '$val' == hogehoge ]; echo $?
1

[[ ]]は変数展開をクォートする必要がない

val='hoge hoge'
[[ $val == hogehoge ]]; echo $?
1
ディレクトリがない場合
if [ ! -d log ]
then
    echo log dir nothing!!
fi

http://shellscript.sunone.me/if_and_test.html
https://fumiyas.github.io/2013/12/15/test.sh-advent-calendar.html

変数が空でない場合のみ
if [ -n "$STRING" ]; then
  #処理
fi

参考演算子的な、
# $foo が $bar より大きければ 0 、そうでなければ 1 を $baz に代入する。

[ $foo -ge $bar ] && baz=0 || baz=1

[[ CONDITION ]] && { CMD1; CMDn; } || { CMDe1; CMDen; exit; }

以降作成中。。。