Domanda

Sto cercando di trovare dove due variabili sono concatenati in una directory di script, ma quando provo il seguente:

grep -lire "$DATA_PATH . $AWARDS_YEAR" *

ricevo errori "variabile non definita" ...

Ho pensato che avrei potuto sfuggire al $ s utilizzando:

grep -lire "\$DATA_PATH . \$AWARDS_YEAR" *

Ma ottengo lo stesso errore - così, come si fa a grep per stringhe con $ s in

È stato utile?

Soluzione

Tcsh è un po 'diverso sulle variabili rispetto al solito conchiglie, ed è il default su FreeBSD.

Quindi, basta utilizzare le virgolette singole, '$VAR', o sfuggire al $ al di fuori delle citazioni: \$"VAR"

Altri suggerimenti

Metti in virgolette singole, con la barra fuga:

grep -lire '\$DATA_PATH . \$AWARDS_YEAR' *

Si noti inoltre, che il punto (.) È un personaggio regex. Se non si vuole che sia, sfuggire, troppo (o non utilizzare l'opzione -e).

Ecco un bella riferimento con informazioni più generali.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top