/ / '' barra invertida entre aspas simples dando saída imprevisível no script de shell linux - linux, bash, shell

'' barra invertida entre aspas simples dando saída imprevisível no shell script linux - linux, bash, shell

a saída para os dois comandos a seguir é a mesma:

echo "myname" | grep "my\name"
myname

e também a saída para o próximo comando também é a mesma,

echo "myname" | grep "my\name"
myname

Alguém pode pls guiar porque está resultando na mesma saída? Por que uma barra invertida extra também não afeta nenhuma alteração na saída?

no entanto, se aumentarmos o número de barras invertidas para quatro no grep, a saída desaparece

echo "myname" | grep "my\\name"

sem saída

Pls me guia com o comportamento de grep e backslash em aspas simples e duplas.

Respostas:

2 para resposta № 1

Nos dois primeiros exemplos, ele está correspondendo porque \ no seu padrão regex está combinando um único na entrada. Um extra no segundo exemplo é apenas escapar n e correspondência literal n na entrada.

Ficará claro com estes exemplos:

echo "myname" | grep "myname"
myname

echo "myname" | grep "myname"
myname

echo "myname" | grep "myname"
myname

echo "myname" | grep "myname"

echo "myname" | grep "my\name"
myname

echo "myname" | grep "my\name"
myname

echo "myname" | grep "my\name"
myname