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})$" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |