またはnumeric
を返すという bash 関数があります。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