Как избежать переменной, которая является параметром, содержащим апострофы? - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь запустить сценарий оболочки, используя Jenkins, который собирает данные из Facebook, используя несколько ключевых слов. Как сделать так, чтобы поиски по ключевым словам включали в поиск апострофы?

Переменная «$ {KEYWORDS}» используется в качестве параметров, передаваемых этому сценарию при выполнении. Это может быть несколько ключевых слов, разделенных запятыми, если их несколько. Проблема в том, что скрипт не работает для ключевых слов с апострофами, т. Е. «Я» не сможет работать на этом скрипте. Только "Я".

"sed -ie 's/lms.facebook.keywords=.*\$/lms.facebook.keywords=${KEYWORDS}/g'  /home/hdfs/lms-reporting/pipeline-lms-facebook.properties; 

Можно ли это сделать простым способом? Или требуется сложный оператор if для анализа ключевых слов с апострофами и без них?

Это может быть сделано путем ручного экранирования ключевого слова путем изменения файла, из которого оно извлекает их, однако мне нужно, чтобы эта функция была реализована в скрипте.

1 Ответ

0 голосов
/ 15 мая 2019

Вы пытались выбраться с обратной косой чертой () '\'KeyWord\'' или использовать двойные кавычки "'KeyWord'"

...