68

コードが含まれているシェルスクリプトに出くわしました

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

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

4

1 に答える 1

80

if ステートメントで正規表現を使用できるようにするのは、等チルダ演算子です。

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

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

于 2012-09-17T07:25:55.167 に答える