当正则表达式比较时正则表达式包含变量

时间:2017-02-02 06:23:16

标签: regex bash

我想编写一个带有输入字符串的bash脚本,如果它在开头不包含特定标记,则将标记添加到开头。以下是我写的脚本

image url

只要标记不包含正则表达式特定关键字,这就可以正常工作。

例如,如果代码设置为#! /bin/bash message=$1 tag="hello" filter="^$tag.*" if [[ ! $message =~ $filter ]]; then message="$tag $message" fi echo $message ,则过滤器不起作用,因为方括号是关键字。

如何更改[hello],以便忽略filter中包含的所有关键字?

1 个答案:

答案 0 :(得分:1)

您可以使用shell模式而不是正则表达式和quote them to avoid interpretation of meta characters

if [[ $message != "$tag"* ]]; then
    message="$tag $message"
fi