Ответ 1
Вам нужно использовать двойные кавычки. Одиночные кавычки не позволяют интерпретировать переменную оболочки оболочкой. Вы используете одиночные кавычки, чтобы предотвратить выполнение интерполяцией оболочки, которую вы, возможно, придется делать, если ваше регулярное выражение использовало $
как часть шаблона. Вы также можете использовать обратную косую черту, чтобы указать $
, если вы используете двойные кавычки.
Кроме того, вам может понадобиться поместить вашу переменную в фигурные скобки ${var}
, чтобы помочь отделить ее от остальной части шаблона.
Пример:
$ string="test this"
$ var="test"
$ echo $string | grep "^$var"