Экранирует кавычки в командной строке, но не работает при назначении переменной - PullRequest
0 голосов
/ 09 января 2020

Очень простая проблема, но я не вижу, в чем проблема. В k sh оболочка, экранирующая кавычку в строке поиска, работает по-разному при назначении переменной и при использовании из командной строки. Все примеры, которые я могу найти, демонстрируют использование командной строки, поэтому не удалось найти совпадения для очень простой c проблемы.

Оба работают нормально:

cat access_443_log .2020-01-09 | grep 'HTTP / 1.1 "200'

cat access_443_log.2020-01-09 | grep" HTTP / 1.1 \ "200"

Но делать это, когда любой из них назначен переменная строка поиска

searchstring = 'HTTP / 1.1 "200' или searchstring =" HTTP / 1.1 \ "200"

cat access_443_log.2020-01- 09 | grep $ searchstring

Ошибка: grep: 0652-033 Не удается открыть 200.

Спасибо.

1 Ответ

0 голосов
/ 09 января 2020

Попробуйте добавить двойную кавычку в вашу переменную, как это.

cat access_443_log.2020-01-09 | grep "$searchstring"
...