/ / '' backslash in virgolette singole che forniscono output imprevedibile nello script di shell linux - linux, bash, shell

'' backslash in virgolette singole che danno un output imprevedibile nello script di shell linux - linux, bash, shell

l'output per i seguenti due comandi è lo stesso:

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

e anche l'output per il comando successivo è lo stesso,

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

Qualcuno può pls guida perché si sta producendo la stessa uscita ?? Perché una barra rovesciata in più non influisce anche su eventuali cambiamenti nell'output?

tuttavia, se aumentiamo il numero di backslash su quattro in grep, l'output scompare,

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

nessuna uscita

Pls mi guida con il comportamento di grep e backslash in virgolette singole e doppie.

risposte:

2 per risposta № 1

Nei primi 2 esempi è corrispondente perché \ nel tuo pattern regex corrisponde a un singolo in input. Un extra nel 2 ° esempio sta scappando n e corrispondente letterale n in input.

Sarà chiaro con questi esempi:

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