Question

Je suis en train de trouver où deux variables sont concaténées dans un répertoire de scripts, mais quand je les opérations suivantes:

grep -lire "$DATA_PATH . $AWARDS_YEAR" *

Je reçois des erreurs "variable non définie" ...

Je pensais que je pouvais échapper au $ s en utilisant:

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

Mais je reçois la même erreur - alors, comment voulez-vous grep pour les chaînes avec $ s

Était-ce utile?

La solution

Tcsh est un peu différent sur les variables que les coquilles habituelles, et il est la valeur par défaut sur FreeBSD.

Alors, il suffit d'utiliser des guillemets simples, '$VAR' ou échapper à la $ en dehors des citations: \$"VAR"

Autres conseils

Mettez des guillemets simples, avec la barre oblique échapper:

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

A noter également, que le point (.) Est un caractère regex. Si vous ne voulez pas qu'il soit, y échapper, trop (ou ne pas utiliser l'option -e).

Voici un belle référence avec des informations plus générales.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top