Utilice la función de prueba personalizada en la declaración condicional de bash

Utilice la función de prueba personalizada en la declaración condicional de bash

Tengo una función bash llamada numericque devuelve 1o 0.

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

¿Cómo puedo usar esta función en una declaración condicional para verificar si una variable vares numérica?

Respuesta1

Recuerde que en el contexto de las expresiones condicionales del shell, un valor de retorno de 0significa "éxito" o "verdadero", y un valor distinto de cero significa "fracaso" o "falso", por lo que recomendaría adaptar la función para que devuelva 0si el argumento es un valor numérico.

Suponiendo que la "declaración condicional" es una ifconstrucción, lo siguiente funcionará:

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

Respuesta2

usar retorno

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

numeric || exit 1

información relacionada