Тема: Работа внутри скрипта с grep и искомым выражением содержащим пробел
Всем привет. Есть у меня вот такой скрипт:
#!/bin/bash
expressions=("word1" "word2" "word3" "word4" "word5" "word6 word7");
for expr in "${expressions[@]}"
do
echo " Search: "$expr
grep -rl $expr ${1}
done
Он в указанной директории (первый параметр) с помощью grep ищет файлы содержащие выражения из массива expressions. В самой последней ячейке этого массива выражение с пробелом. grep отказывается с ним работать. Я пробовал заключать выражение в кавычки, ставить обратный слеш и т.д.:
"'word6 word7'"
"'word6\ word7'"
"'word6\\ word7'"
"'word6\\\ word7'"
Ничего не помогает. Постоянно выдаются ошибки типа "grep: Обратная косая черта в конце", или "grep: word7': Нет такого файла или каталога". Хотя при наборе таких же команд в консоли достаточно поставить слеш перед пробелом или заключить искомое выражение в одиночные кавычки. Как нужно экранировать пробел в случае со скриптом?