初心者のWEBデザイン

HTML,CSS、その他WEBデザインに関する事を記述していきます.

Shell Script [[ ]] を用いた比較方法

testコマンド [] よりも での比較はShellScript以外のプログラム言語と
似たような記述が可能になります。

[ ]だとAND演算やOR演算は【-a】や【-o】を用いますが、
では&&・||が使用できます。

x=30
if [[ $x -gt 10 && $x -lt 50 ]]; then
  echo 'x > 10 AND x < 50'
else
  echo 'x <= 10 OR x >= 50'
fi
#出力結果 x > 10 AND x < 50

内で==・!=を記述した場合には右辺にパターン文字列を使用できます。

==を使用する
str=cat
if [[ $str == c* ]]; then
  echo Yes
else
  echo No
fi

#出力結果 YES
!=を使用する
str1=cat
str2=bird

if [[ $str1 != c* ]]; then
  echo Yes
else
  echo No
fi

# catとc**はマッチするが!がついているのでFalseになります。
#出力結果 No

if [[ $str2 != c* ]]; then
  echo Yes
else
  echo No
fi

# birdとc**はマッチしませんが、!がついているのでTrueになります。
#出力結果 Yes
パターンマッチ(=~)

正規表現を用いて比較する方法

str='/home/cat'
if [[ $str =~ ^/ho.*/[^/]*t$ ]]; then
  echo Yes
else
  echo No
fi

#出力結果 Yes