Use a função de teste personalizada na instrução condicional bash

Use a função de teste personalizada na instrução condicional bash

Eu tenho uma função bash chamada numericque retorna 1ou 0.

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

Como posso usar esta função em uma instrução condicional para verificar se uma variável varé numérica?

Responder1

Lembre-se de que no contexto de expressões condicionais do shell, um valor de retorno 0significa "sucesso" ou "verdadeiro" e um valor diferente de zero significa "falha" ou "falso", então eu recomendaria adaptar a função para que ela retorne 0se o argumento é um valor numérico.

Supondo que a "declaração condicional" seja uma ifconstrução, o seguinte funcionará:

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

Responder2

usar retorno

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

numeric || exit 1

informação relacionada