在 bash 条件语句中使用自定义测试函数

在 bash 条件语句中使用自定义测试函数

我有一个名为 bash 的函数,numeric它返回1or 0

numeric ()
{
  # compute k either 1 or 0
  echo "$k"
}

如何在条件语句中使用此函数来检查变量是否var为数字?

答案1

请记住,在 shell 条件表达式的上下文中,返回值 表示0“成功”或“真”,非零值表示“失败”或“假”,因此我建议调整该函数,使其返回0if参数是一个数值。

假设“条件语句”是一个if构造,则以下内容将起作用:

if numeric "$var"
then
   # Code if $var is numeric
else
   echo "$var is not numeric"
fi

答案2

使用返回

numeric ()
{
  # compute k either 1 or 0 || return 1
  echo "$k"
  return 0
}

numeric || exit 1

相关内容