【问题标题】:bash operator if statement is not a number [duplicate]bash运算符if语句不是数字[重复]
【发布时间】:2015-04-14 16:46:49
【问题描述】:

我想排除所有不是来自我的变量的数字:

例子:

好变量: 4564 或 332 或 1

错误的变量: er0rr 或 E131 或 KE1

我不确定如何使用 if 语句来识别输出是一个数字。

【问题讨论】:

    标签: bash if-statement


    【解决方案1】:

    在 BASH 中,您可以使用此正则表达式条件来检查变量 n 是否仅包含数字:

    [[ "$n" =~ ^[[:digit:]]+$ ]]
    

    【讨论】:

    • 或者这个扩展的全局模式:[[ $n = +([[:digit:]]) ]]。请注意,这并不能保证您可以在 Bash 的算术上下文中使用此数字。例如,n=09 通过了这个测试,但在算术上下文中使用时会引发 09: value too great for base (error token is "09") 错误。要解决此问题,您将在此测试之后使用以下内容:n=$((10#$n))
    猜你喜欢
    • 2021-11-14
    • 2012-11-04
    • 1970-01-01
    • 1970-01-01
    • 2019-04-27
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    • 2020-12-31
    相关资源
    最近更新 更多