/ / Qual è la differenza tra grep $ e grep $? - shell, unix, grep

Qual è la differenza tra grep \ $ e grep \ $? - shell, unix, grep

Quando scrivo grep \$ shell sfugge entrambi e $ e lo trasforma in $ e invia a grep, che quindi trova tutte le linee con il simbolo del dollaro $. Va bene!

Quando scrivo grep \$ il risultato è lo stesso e non so davvero perché: il primo backslash dovrebbe sfuggire al secondo, ma poi $ non è sfuggito e la shell dovrebbe sostituirlo con una stringa vuota? grep dovrebbe ricevere e segnala un errore ma invece tutto funziona come nel primo esempio per qualche motivo ..

risposte:

2 per risposta № 1

Nelle shell UNIX, $x è sostituito dal valore della variabile di shell x ma quando non c'è nulla che segue il $, non viene eseguita alcuna sostituzione. Puoi testare questo con echo:

> echo $
$
> echo $x

>

I tuoi due argomenti in grep vengono passati in grep esattamente come la stessa espressione regolare.

> echo \$
$
> echo \$
$
>