Bash -- 如何判断变量是字符串还是数字

3

1
你没有尝试将其适应于浮点数吗? - Mat
可能是如何在bash中测试变量是否为数字?的重复。 - Charles Duffy
2个回答

4

根据提到的问题,下面的内容适用于我:

[[ $value =~ ^[0-9]+(\.[0-9]+)?$ ]]

1
你需要转义“.”,否则它会匹配“2c2”等内容。 - cmbuckley
没错,我在我的帖子中有提到,只是似乎没有渲染出来,感谢您的提醒,我已经更新了我的解决方案。 - Peter Butkovic

4
你可以根据所需的数字格式扩展所提出的正则表达式: [[ $value =~ ^[0-9]+(\.[0-9]+)?$ ]] 可以识别2或2.4作为数字,但将2.或.4识别为字符串。 [[ $value =~ ^(\.[0-9]+|[0-9]+(\.[0-9]*)?)$ ]] 可以识别所有的2、2.4、2.和.4作为数字。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接