我想编写一个带有输入字符串的bash脚本,如果它在开头不包含特定标记,则将标记添加到开头。以下是我写的脚本
image url
只要标记不包含正则表达式特定关键字,这就可以正常工作。
例如,如果代码设置为#! /bin/bash
message=$1
tag="hello"
filter="^$tag.*"
if [[ ! $message =~ $filter ]]; then
message="$tag $message"
fi
echo $message
,则过滤器不起作用,因为方括号是关键字。
如何更改[hello]
,以便忽略filter
中包含的所有关键字?
答案 0 :(得分:1)
您可以使用shell模式而不是正则表达式和quote them to avoid interpretation of meta characters:
if [[ $message != "$tag"* ]]; then
message="$tag $message"
fi