加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

regex – 如何检查bash中的输入字符串是否为版本格式(n1.n2.n3)

发布时间:2020-12-15 17:01:20 所属栏目:安全 来源:网络整理
导读:我写了一个脚本来更新某个文件的版本.我需要检查用户的输入是否为版本格式,因此我没有完成添加那些重要文件中不需要的数字.我这样做的方法是添加一个新值version_check,在这里删除我的正则表达式模式,然后是if check. version=$1version_checked=$(echo $ver
我写了一个脚本来更新某个文件的版本.我需要检查用户的输入是否为版本格式,因此我没有完成添加那些重要文件中不需要的数字.我这样做的方法是添加一个新值version_check,在这里删除我的正则表达式模式,然后是if check.
version=$1
version_checked=$(echo $version | sed -e '/[0-9]+.[0-9]+.[0-9]/d')

if [[ -z $version_checked ]]; then
    echo "$version is the right format"
else
    echo "$version_checked is not  in the right format,please use XX.XX.XX format (ie: 4.15.3)"
    exit
fi

这适用于XX.XX和XX.XX.XX,但它也允许XX.XX.XX.XX和XX.XX.XX.XX.XX等.所以如果用户犯了错误,它将输入错误的数据文件.如何让sed正则表达式只允许3对用点分隔的数字?

改变你的正则表达式:
/[0-9]+.[0-9]+.[0-9]/

对此:

/^[0-9]*.[0-9]*.[0-9]*$/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读