根据特定模式 BASH 验证用户输入

根据特定模式 BASH 验证用户输入
if ($input !~ [[:upper:-]][[:digit:]][[:digit:]][[:digit:-]][[:digit:]][[:digit:]][[:digit:]]) then
   goto error1
else
   echo $input
endif

我已尝试使用上面的代码来匹配模式“P-70-90”,但它不起作用。

我正在 cShell 中尝试,但 bash 格式也可以实现。

答案1

终于找到解决方案:

#!/usr/bin/bash

REGEX='^[[:upper:]]-([0-9]{2}|[0-9]{3})-([0-9]{2}|[0-9]{3})$'

CHECK="P-70-56"

if [[ ! $CHECK =~ $REGEX ]]
then
    echo "Not ok"
else 
    echo "ok"
fi

相关内容