Bash - 返回一个布尔检查

时间:2016-05-24 19:12:55

标签: bash

我创建了一个执行正则表达式检查的简单函数:

function is_number()
{
    return [[ "$1" =~ ^-?[0-9]+$ ]]
}

我得到的是

return: [[: numeric argument required

我做错了什么?

1 个答案:

答案 0 :(得分:5)

您不需要return声明。函数的返回值是最后一个语句的退出代码。所以这就足够了:

function is_number()
{
    [[ "$1" =~ ^-?[0-9]+$ ]]
}

使用显式return语句的相当于:

function is_number()
{
    [[ "$1" =~ ^-?[0-9]+$ ]]
    return $?
}

但不要这样做,这是毫无意义的。