Pregunta

Estoy tratando de encontrar donde dos variables se concatenan en un directorio de secuencias de comandos, pero cuando intento el siguiente:

grep -lire "$DATA_PATH . $AWARDS_YEAR" *

recibo mensajes de error "variable no definida" ...

pensé que podía escapar de la $ s utilizando:

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

Pero consigo el mismo error - es así, ¿cómo se grep para cuerdas con $ s en

¿Fue útil?

Solución

Tcsh es un poco diferente sobre las variables que las conchas habituales, y es el valor por defecto en FreeBSD.

Por lo tanto, sólo tiene que utilizar comillas simples, '$VAR', o escapar de la $ fuera de las comillas: \$"VAR"

Otros consejos

Ponga entre comillas simples, con la barra de escapar:

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

Tenga en cuenta también, que el punto (.) Es un personaje de expresiones regulares. Si no quiere que sea, escapar de ella, también (o no utilice la opción -e).

Aquí hay una buena referencia con información más general.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top