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 № 1Nelle 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 \$
$
>