Здесь переменная называется «мишенью»Regex и строки в кавычках
$ echo $_target
x86_64-linux-gnu
Этот тест регулярное выражение успешно ...
$ if [[ $_target =~ "x86_64" ]]; then echo "match"; fi
match
Но это не тест, чтобы увидеть, если выражение на начало строки. Позвольте мне добавить привязку к регулярному выражению:
$ if [[ $_target =~ "^x86_64" ]]; then echo "match"; fi
$
Не указанная строка не указывает на совпадение. Weird.
Однако, если я снимаю кавычки вокруг регулярного выражения, все хорошо
$ if [[ $_target =~ ^x86_64 ]]; then echo "match"; fi
match
Почему котировки влияют на тест регулярное выражение? Что мне не хватает в моем понимании, чтобы удивляться, что второй тест выше не соответствует?
возможно здесь: http://stackoverflow.com/questions/218156/bash-regex-with-quotes?rq=1 – pce