如何转义包含撇号的参数的变量?

时间:2019-05-14 22:32:44

标签: php bash sed escaping apostrophe

我正在尝试使用Jenkins运行Shell脚本,该脚本使用多个关键字从Facebook收集数据。如何使使用关键字的搜索在搜索中包含撇号?

变量“ $ {KEYWORDS}”用作执行时传递给此脚本的参数。它可以是多个关键字,如果有多个,则用逗号分隔。问题是该脚本不适用于带有撇号的关键字,即“ I'm”将无法在此脚本上运行。只有“我”。

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

这可以通过简单的方式完成吗?还是需要复杂的if语句来解析带有&不带有撇号的关键字?

这可以通过更改要从中提取关键字的文件来手动转义关键字来完成,但是我需要在脚本中实现此功能。

1 个答案:

答案 0 :(得分:0)

您是否尝试使用反斜杠()'\'KeyWord\''或使用双引号"'KeyWord'"来转义