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.