我使用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:意外的操作员
我该如何解决这个问题?
答案 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
周围的引号的删除。