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

如何检查字符串是否包含shell中正则表达式中的字符?

发布时间:2020-12-15 21:09:45 所属栏目:安全 来源:网络整理
导读:如何检查变量是否包含0-9a-z以外的字符(正则表达式)和 – 纯粹的bash? 我需要一个有条件的检查.如果字符串包含上述接受字符以外的字符,则只需退出1. 解决方法 一种方法是使用grep命令,如下所示: grep -qv "[^0-9a-z-]" $STRING 然后你要求grep返回的值如下
如何检查变量是否包含0-9a-z以外的字符(正则表达式)和 – 纯粹的bash?

我需要一个有条件的检查.如果字符串包含上述接受字符以外的字符,则只需退出1.

解决方法

一种方法是使用grep命令,如下所示:

grep -qv "[^0-9a-z-]" <<< $STRING

然后你要求grep返回的值如下:

if [ ! $? -eq 0 ]; then
    echo "Wrong string"
    exit 1
fi

正如@mpapis所指出的那样,你可以将上面的表达式简化为:

grep -qv "[^0-9a-z-]" <<< $STRING || exit 1

你也可以使用bash =?运算符,如下所示:

if [[ ! "$STRING" =~ [^0-9a-z-] ]] ; then  
    echo "Valid"; 
else 
    echo "Not valid"; 
fi

(编辑:李大同)

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

    推荐文章
      热点阅读