3.1 と 3.2 の間で変更されました。高度なガイドには更新が必要だと思います。
これは、bash-3.1 のリリース以降に bash-3.2 に追加された新機能の簡潔な説明です。いつものように、マニュアル ページ (doc/bash.1) は完全な説明を探す場所です。
- Bash の新機能
をちょきちょきと切る
f. [[ コマンドの =~ 演算子の文字列引数をクォートすると、他のパターン マッチング演算子と同様に、文字列の一致が強制されるようになりました。
悲しいことに、変数にパターンを保存し、正規表現の代わりにそれらを直接使用する洞察がない限り、これはスクリプトを使用した既存の引用を壊します。以下の例。
$ bash --version
GNU bash, version 3.2.39(1)-release (i486-pc-linux-gnu)
Copyright (C) 2007 Free Software Foundation, Inc.
$ number=2
$ if [[ $number =~ "[0-9]" ]]; then echo match; fi
$ if [[ $number =~ [0-9] ]]; then echo match; fi
match
$ re="[0-9]"
$ if [[ $number =~ $re ]]; then echo MATCH; fi
MATCH
$ bash --version
GNU bash, version 3.00.0(1)-release (i586-suse-linux)
Copyright (C) 2004 Free Software Foundation, Inc.
$ number=2
$ if [[ $number =~ "[0-9]" ]]; then echo match; fi
match
$ if [[ "$number" =~ [0-9] ]]; then echo match; fi
match