我在bash 4.1中使用正则表达式无法正确匹配模式。我已经阅读了一些关于引号与非引号之间差异的信息,但我不认为那是我的问题。
我的目标是检查并确保脚本提供了有效的ID。在这种情况下,有效的ID是由9个数字组成的字符串。据我所知,用于匹配这种模式的正则表达式是\d{9}。因此,以下是我的代码片段来检查:
id=$1
if [[ $id =~ \d{9} ]]; then
echo "This is a vaild ID"
else
echo "This is not a vaild ID"
fi
然后使用以下命令调用脚本:
./script 987654321
我有什么明显的遗漏吗?这与IT技术有关。
\d
,您可以使用[0-9]
或[:digit:]
POSIX字符类。 - ocodocase $id in [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]) echo fine ;; *) die in anguish;; esac
。 - tripleee