Непонятное поведение grep

grep -q "x*" <<<"zoo"
echo $?
grep -q "z*" <<<"zoo"
echo $?

Почему обе команды возвращают 0? Ожидается, что в первой возвратится не 0, т.к. zoo не содержит x.


Ответы (1 шт):

Автор решения: Zt.

ну так а почему ему и не срабатывать ?

x* - означает что x должен встречатся 0 или больше раз, а в слове zoo буква x встречается 0 раз, значит всё верно.

Возможно вы имели в виду то что обязательно должна присутствовать буква x а после неё 0 или больше символов, тогда это запишется так:

$ grep 'x.*' <<<"zoo";echo $?
1
→ Ссылка