<分区>
我想编写程序检查给定的输入是否为数字。谁能帮帮我?
if [ $Number -ne 0 -o $Number -eq 0 2>/dev/null ]
then ...
-o
在上面的命令中代表什么?
<分区>
我想编写程序检查给定的输入是否为数字。谁能帮帮我?
if [ $Number -ne 0 -o $Number -eq 0 2>/dev/null ]
then ...
-o
在上面的命令中代表什么?
最佳答案
-o
是或 运算符。因此,您的测试会检查您的数字是否不等于 0 或是否等于 0。
(因此它应该始终返回 true)。
要检查它是否是一个数字,您可以使用正则表达式:这应该有效:
[[ "$number" =~ ^[0-9]+$ ]]
要查看所有可用标志的列表,您应该查看 man test
详细信息:
[[
是一个扩展的 bash 测试命令。它比 test/[
支持更多的运算符。=~
再次将第一个参数与正则表达式进行比较^[0-9]+$
是正则表达式。 ^
是字符串开头的 anchor ,$
是结尾的 anchor 。 [0-9]
表示0到9之间的任意字符,+
表示重复最新的模式关于bash - 在 bash 中检查输入是否为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28957568/