2016-02-04 2 views
-2

Как говорится в заголовке, что делает «= ~» в сценарии оболочки bash, работающем на Linux? Я googled онлайн и обнаружил, что «==» проверяет равенство и «! =» Проверяет неравенство. Как насчет «= ~»? Наверное, это может быть какое-то регулярное выражение?Что делает «= ~» в оболочке bash linux

+3

Зачем угадывать, а не просто читать документацию? – Barmar

+0

Не нашли документацию. Googled и не нашел ответа. –

+0

Что вы видите, если вы google "bash manual"? Во всяком случае, я дал вам ссылку в своем ответе, пометив ее. – Barmar

ответ

2

=~ делает Баш regular expression match

продукта пример

$ [[ 45 =~ [0-9]+ ]] && echo "45 contains digits" 
45 contains digits 

$ [[ "hello" =~ [0-9]+ ]] && echo "hello doesnt contains digits" 
$ [[ "hello" =~ [a-z]+ ]] && echo "hello contains alphabets" 
hello contains alphabets 
1

Да, это регулярное выражение. Это в bashmanual:

Дополнительный бинарный оператор, =~, есть в наличии, с тем же приоритетом, как и ==!=. Когда он используется, строка справа от оператора считается расширенным регулярным выражением и соответствующим образом соответствует (как в regex3)).

+0

Что такое "regex3"? – rwols

+1

@rwols Я думаю, они имели в виду 'regex (3)' - число в скобках относится к разделу руководства Unix по библиотечным функциям. – Barmar