web-dev-qa-db-ja.com

シェルスクリプトでの「=〜」演算子の意味

コードがあるシェルスクリプトに出会いました

for line in $LIST_ARRAY;do
if [[ $LIST_ARRAY =~ $line ]]
then
echo "true"
....
...
.

この場合の=~の使用は何ですか?

44
cc4re

ifステートメントで正規表現の使用を許可するのは、等しいTilde演算子です。

==および!=と同じ優先順位で、追加の二項演算子=〜を使用できます。使用される場合、演算子の右側の文字列は拡張正規表現と見なされ、それに応じて一致します(regex(3)のように)。戻り値は、文字列がパターンに一致する場合は0、そうでない場合は1です。正規表現が構文的に正しくない場合、条件式の戻り値は2です。シェルオプションnocasematchが有効な場合、アルファベット文字の大文字と小文字を区別せずに一致が実行されます。パターンの任意の部分を引用符で囲んで、文字列として一致させることができます。

http://linux.die.net/man/1/bash

54
MimiEAM