0

これが「ターゲット」と呼ばれる変数です

$ echo $_target
x86_64-linux-gnu

この正規表現テストは成功します...

$ if [[ $_target =~ "x86_64" ]]; then echo "match"; fi
match

ただし、式が行の先頭にあるかどうかを確認するためのテストは行われません。正規表現にアンカータグを追加しましょう:

$ if [[ $_target =~ "^x86_64" ]]; then echo "match"; fi
$

上記の行は一致を示していません。変。

ただし、正規表現の前後の引用符を外せば、すべて問題ありません。

$ if [[ $_target =~ ^x86_64 ]]; then echo "match"; fi
match

引用符が正規表現テストに影響するのはなぜですか?上記の2番目のテストが一致しないことに驚いたことに、私は理解に何が欠けていますか?

4

1 に答える 1

1

=~ 演算子の右側を引用符で囲まないでください。正規表現ではなく文字列を意味するためです。(ソース

于 2013-02-23T21:26:52.477 に答える