У меня есть функция bash, numeric
которая возвращает либо , 1
либо 0
.
numeric ()
{
# compute k either 1 or 0
echo "$k"
}
Как можно использовать эту функцию в условном выражении для проверки, var
является ли переменная числовой?
решение1
Помните, что в контексте условных выражений оболочки возвращаемое значение 0
означает «успех» или «истина», а ненулевое значение означает «неудача» или «ложь», поэтому я бы рекомендовал адаптировать функцию так, чтобы она возвращала значение, 0
если аргумент является числовым значением.
Если предположить, что «условный оператор» является 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