Вопрос

Я пытаюсь найти место объединения двух переменных в каталоге сценариев, но когда я пытаюсь сделать следующее:

grep -lire "$DATA_PATH . $AWARDS_YEAR" *

Я получаю ошибки «неопределенная переменная»...

Я думал, что смогу избежать $s, используя:

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

Но я получаю ту же ошибку. Как же найти строки с $s?

Это было полезно?

Решение

Tcsh немного отличается от переменных в обычных оболочках и используется по умолчанию во FreeBSD.

Итак, просто используйте одинарные кавычки, '$VAR', или избежать $ вне кавычек: \$"VAR"

Другие советы

Заключите его в одинарные кавычки с экранирующей косой чертой:

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

Также обратите внимание, что точка (.) является символом регулярного выражения.Если вы не хотите, чтобы это было так, избегайте и этого (или не используйте опцию -e).

Вот хорошая ссылка с более общей информацией.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top