/ / Was ist der Unterschied zwischen grep $ und grep $? - Shell, Unix, Grep

Was ist der Unterschied zwischen grep \ $ und grep \ $? - Shell, Unix, Grep

Wenn ich tippe grep \$ Shell entgeht beiden und $ und verwandelt es in $ und sendet an grep, das dann alle Zeilen mit Dollarzeichen findet $. Das ist gut!

Wenn ich tippe grep \$ Das Ergebnis ist das gleiche und ich weiß nicht wirklich warum. Der erste Backslash sollte dem zweiten entkommen, aber dann $ ist nicht maskiert und Shell sollte es durch eine leere Zeichenfolge ersetzen? grep sollte erhalten und melden Sie einen Fehler, aber stattdessen funktioniert alles wie im ersten Beispiel aus irgendeinem Grund ..

Antworten:

2 für die Antwort № 1

In UNIX-Shells $x wird durch den Wert der Shell-Variable ersetzt x aber wenn dem nichts folgt $, es wird keine Substitution durchgeführt. Sie können dies mit testen echo:

> echo $
$
> echo $x

>

Ihre zwei grep-Argumente werden in grep als genau der gleiche reguläre Ausdruck übergeben.

> echo \$
$
> echo \$
$
>