Подтвердить что ты не робот

Значение оператора "= ~" в оболочке script

Я столкнулся с оболочкой script, где код

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

В чем смысл использования =~?

4b9b3361

Ответ 1

это оператор Equal Tilde, который позволяет использовать регулярное выражение в выражении if.

Доступен дополнительный бинарный оператор, = ~, с тем же приоритет как == и! =. Когда он используется, строка справа от оператор считается расширенным регулярным выражением и сопоставляется соответственно (как в регулярном выражении (3)). Возвращаемое значение равно 0, если строка соответствует шаблону и 1 в противном случае. Если регулярное выражение синтаксически неверно, возвращаемое значение условного выражения 2. Если включена опция nocasematch оболочки, совпадение выполняется независимо от случая с алфавитными символами. Любая часть шаблон может быть процитирован, чтобы заставить его соответствовать строке.

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