Frage

Ich versuche zu finden, wo zwei Variablen in einem Verzeichnis von Skripten verknüpft werden, aber wenn ich versuche, die folgenden:

grep -lire "$DATA_PATH . $AWARDS_YEAR" *

ich "nicht definierte Variable" Fehler ...

Ich dachte, ich könnte die $ s zu entkommen, indem Sie:

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

Aber ich bekomme den gleichen Fehler - so, wie grep Sie Strings mit $ s in

War es hilfreich?

Lösung

Tcsh ist ein wenig anders über Variablen als die üblichen Schalen, und es ist die Standardeinstellung auf FreeBSD.

So verwenden nur einfache Anführungszeichen, '$VAR' oder die $ entkommen außerhalb der Zitate: \$"VAR"

Andere Tipps

Legen Sie es in einfachen Anführungszeichen, mit dem entweichenden Strich:

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

Beachten Sie auch, dass der Punkt (.) Ein regulärer Ausdruck Charakter. Wenn Sie nicht wollen, um es, zu entkommen es, auch (oder nicht die Option -e verwenden).

Hier ist eine schöne Referenz mit mehr allgemeinen Informationen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top