所以我有一个像这样的模式somepattern-abc-1.2.3-aji3mk3-11.tar
。我需要添加一个条件
if [ $input matches somepattern[].tar ]
then
do something
fi
这里somepattern
将是一个常数,其余的直到“.tar”会变化并且可以有一个连字符、一个字母或一个数字。我可以用什么替换我的 [] 才能让它满意?
答案1
你可以用这个来测试:
input="somepattern-abc-1.2.3-aji3mk3-11.tar"
[[ "$input" =~ ^somepattern[-.a-z0-9]*\.tar$ ]] && echo "match" # here your command
答案2
如果您可以将模式编写为正则表达式,那么您就可以使用bash
运算符=~
将第一个参数与另一侧的正则表达式进行比较。
你可以用类似的东西来测试它:
read a;[[ "$a" =~ "x" ]] && echo $a
其中“x”是您的模式。