bash - 在 bash 中检查输入是否为数字

标签 bash numbers

<分区>

我想编写程序检查给定的输入是否为数字。谁能帮帮我?

 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/

相关文章:

bash - 比较bash中2个目录的所有文件大小

linux - 获取找到的文件的目录 - Bash

bash - expr 和 if 在 bash 中

bash - sh -c : Unterminated quoted string error in groovy call

list - 如何在 Haskell 中从两个列表(+额外条件)中添加值

c++,将输入字符串转换为数字,转换失败不应返回零

bash - 我如何找到关于 bash 特殊参数的信息 ($* $@ $# $? $- $$ $! $0 $_)?

python-2.7 - 在 python 中找到友好数字的最有效方法是什么?

python - 数字比较 - Python Bug?

javascript - 是什么原因?运算符或使用字符串?