Я пытаюсь создать функцию в скрипте bash, который запрашивает файл журнала. В функции запроса, у меня есть что-то, похожее на следующее:Bash: использование цитируемой переменной для grep в выражении с кавычками
if [ -n "$(cat some-log-file.log | grep \"$1\")" ]; then
echo "There is a match."
else
echo "No lines matched the search term."
fi
Если я посылаю что-то я знаю, будет находиться в файле журнала, как $ 1, как «я не», я получаю выход:
$ ./y.sh запрос «Я не»
Grep: не ": нет такого файла или каталога
нет линий соответствует поисковому запросу
Если я пытаюсь одной цитатой $.(), он отправляет литеральную строку и всегда оценивает значение true. Я предполагаю, что это имеет какое-то отношение к способу grep inte rprets обратная косая черта, но я не могу понять это. Возможно, я наблюдаю за чем-то простым, но я часами смотрю на форумы и подключаю всевозможные странные комбинации цитат и персонажей-побегов. Любая помощь или совет приветствуются.
Спасибо тонну. Оба решения работали красиво, но я пользуюсь вторым. – shloosh