BashbashBASH

シェルスクリプトのお作法が未だにわからない。
とりあえず、文字列の比較演算子は "a"="b"で
数値の比較演算子は "a" -eq "b" らしい。
ユーザーに優しくない仕様だと思う。

とりあえずオライリーにかいてなかったあたりに凹む。

悲しいのでもしかしたら使えるかもしれないメモ
  
関係演算子
num1 & num2  num1及びnum2が共に0またはNULL以外ならnum1を返す。それ以外は0を返す。
num1 | num2  num1が0またはNULL以外ならnum1を返す。0ならnum2を返す。
num1 = num2  num1とnum2が一致なら1を返す。それ以外は0を返す。
num1 > num2  num1がnum2より大きいなら1を返す。それ以外は0を返す。
num1 < num2  num1がnum2未満なら1を返す。それ以外は0を返す。
num1 >= num2  num1がnum2以上なら1を返す。それ以外は0を返す。
num1 <= num2  num1がnum2以下なら1を返す。それ以外は0を返す。
num1 != num2  num1とnum2が不一致なら1を返す。それ以外は0を返す
  
条件判断
 
数値比較
 "数値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つの数値が等しくなければ真である。
    
文字列比較
 -n "文字列" 文字列の長さが0より大きければ真である。
 -z "文字列" 文字列の長さが0であれば真である。
 "文字列1" = "文字列2" 2つの文字列が等しければ真である。
 "文字列1" != "文字列2" 2つの文字列が等しくなければ真である。
  
  
論理結合
 !条件 条件が偽であれば真である。
 条件1 -a 条件2 条件1と条件2の両方が真であれば真である。
 条件1 -o 条件2 条件1と条件2のどちらかが真であれば真である。