bash – 检查字符串是否为UUID
发布时间:2020-12-15 22:48:55 所属栏目:安全 来源:网络整理
导读:我试图测试字符串$uuid是否是UUID.我写过这个脚本但由于某种原因它不起作用: uuid="7632f5ab-4bac-11e6-bcb7-0cc47a6c4dbd"if [[ $uuid =~ ^{?[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}}?$]]; then echo "true"else echo "false"fi
我试图测试字符串$uuid是否是UUID.我写过这个脚本但由于某种原因它不起作用:
uuid="7632f5ab-4bac-11e6-bcb7-0cc47a6c4dbd" if [[ $uuid =~ ^{?[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}}?$]]; then echo "true" else echo "false" fi 解决方法
您的正则表达式不接受小写字母为有效.这是一个固定版本:
#!/bin/bash uuid="7632f5ab-4bac-11e6-bcb7-0cc47a6c4dbd" if [[ $uuid =~ ^{?[A-F0-9a-f]{8}-[A-F0-9a-f]{4}-[A-F0-9a-f]{4}-[A-F0-9a-f]{4}-[A-F0-9a-f]{12}}?$]]; then echo "true" else echo "false" fi 首先,你只需要搜索A-F而不是A-Z,因为UUID包含十六进制数字. 注意在每个字符类中添加了a-f.您的版本将拒绝以小写字母打印的任何UUID.这个新版本现在适用于我.另一种解决方案是仅使用大写的UUID,而不是您使用的小写UUID.由于这些原因,您的[A-Z0-9]类已被[A-F0-9a-f]取代. 有关安全考虑,请参阅Ekeyme Mo的帖子. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- scala – 延迟功能执行
- angularjs – 使用$state.transitionTo的单元测试控制器
- Lotus domino 8.5 WebService 一 (使用SoapToolkit3.0消费W
- angularjs – 在角度形式指令的单元测试中设置视图值输入字
- angularjs – 如何在ion2/angular2中设置动态id(* ngFor)?
- Docker Compose – 图像名称
- Scala(或Java)中的自适应映射保留插入顺序
- 使用ionic+angular+phonegap开发APP入门
- bash – “echo”hello“之间的区别ls“vs”echo’hello’&
- angularjs – 访问chrome net :: ERR_INSECURE_RESPONSE中的