Ich habe eine Bash-Funktion namens , die entweder oder numeric
zurückgibt .1
0
numeric ()
{
# compute k either 1 or 0
echo "$k"
}
Wie kann ich diese Funktion in einer bedingten Anweisung verwenden, um zu überprüfen, ob eine Variable var
numerisch ist?
Antwort1
Bedenken Sie, dass im Kontext bedingter Shell-Ausdrücke ein Rückgabewert 0
„Erfolg“ oder „Wahr“ bedeutet und ein Wert ungleich Null „Fehler“ oder „Falsch“ bedeutet. Ich würde daher empfehlen, die Funktion so anzupassen, dass sie etwas zurückgibt, 0
wenn das Argument ein numerischer Wert ist.
Vorausgesetzt, dass es sich bei der „bedingten Anweisung“ um ein if
Konstrukt handelt, funktioniert Folgendes:
if numeric "$var"
then
# Code if $var is numeric
else
echo "$var is not numeric"
fi
Antwort2
Rückgabe verwenden
numeric ()
{
# compute k either 1 or 0 || return 1
echo "$k"
return 0
}
numeric || exit 1