Shell如果还有正则表达式

时间:2017-11-02 09:32:19

标签: shell

我使用shell来进行简单的String regex匹配。这是我的shell

#!/bin/sh

MSG="ANK"
PATTERN="([A-Z]{3,5}[-][0-9]{2,5})"

if [ "$MSG" =~ "$PATTERN" ]; then
    echo "MATCHED";
else
    echo "not";
fi

给出错误

abc.sh:6:[:ANK:意外的操作员

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

在评论中提出几个贡献者提出的更改会产生:

#!/bin/bash

MSG="ANK"
PATTERN="([A-Z]{3,5}[-][0-9]{2,5})"

if [[ "$MSG" =~ $PATTERN ]]; then
    echo "MATCHED";
else
    echo "not";
fi

请注意bash的更改,[[的更改以及$PATTERN周围的引号的删除。