数値が有効な10桁の場合、1を返す関数があります。
valNum()
{
flag=1
if [[ $1 != [1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] ]]; then
echo "Invalid Number"
flag=0
fi
return $flag
}
次のように呼び出されます。
if [[ $(valNum $num) -eq 1 ]]; then
#do something
fi
数値が有効な場合、関数は正しく機能しますが、無効な数値を入力すると構文エラーが表示されます。
ベストアンサー1
@chorobaの答えは正確ですが、この例ではより明確になります。
valNum $num
valNumResult=$? # '$?' is the return value of the previous command
if [[ $valNumResult -eq 1 ]]
then
: # do something
fi
この例は少し長いですが($valNumResult
値の設定とクエリ)、何が起こるのかをより明確に説明します。つまり、valNum()
値が返され、その値を照会してテストできます。
追記お願いします。0
合計true
をゼロ以外の値で返してくださいfalse
。これにより、戻り値を使用して、失敗したケースで「失敗した理由」を示すことができます。