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

bash – 检查变量是否包含一组TLD中的域名

发布时间:2020-12-15 22:19:14 所属栏目:安全 来源:网络整理
导读:我有一个变量名称,其中包含DNS记录的名称.我想检查某些条件,例如,如果它以.com或.es结尾. 现在我正在使用 name="test.com"namecheck=`echo $name | grep -w "^[A-Za-z]*..com"` 但它只检查com而忽略了.还可以根据存储在数组中的一系列值来检查它 domain=[ ".
我有一个变量名称,其中包含DNS记录的名称.我想检查某些条件,例如,如果它以.com或.es结尾.

现在我正在使用

name="test.com"

namecheck=`echo $name | grep -w  "^[A-Za-z]*..com"`

但它只检查com而忽略了.还可以根据存储在数组中的一系列值来检查它

domain=[ ".es" ".com" ".de"]

解决方法

你可以使用这个egrep:

egrep -q ".(com|es|de)$"

如果给定输入以.com OR .es或.de结尾,则返回0(true)

编辑:将它与允许的域数组一起使用:

domain=( "es" "com" "de" )
str=$(printf "|%s" ${domain[@]})
str="${str:1}"

echo "abc.test.com"|egrep ".(${str})$"
abc.test.com

echo "abc.test.org"|egrep ".(${str})$"

(编辑:李大同)

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

    推荐文章
      热点阅读