O Grep usa expressões regulares ; lá, um único ponto final . corresponde a qualquer caractere único. Para corresponder a um ponto / período completo literal, você precisa escapar com uma barra invertida assim: \. . ^ significa 'o começo da linha'.
Portanto, grep . corresponderá a qualquer coisa que contenha um único caractere (então, suponho que não correspondam a linhas vazias). Por outro lado, grep "^\." corresponde a qualquer linha que comece com um literal .
No bash, || significa 'ou'; grep "^\." || echo something irá echo something se o grep não mostrar nenhuma linha (então ele é falso). && é usado para 'e' no bash.