Re: return values from a function call



Dave Kelly wrote:
paintedjazz@xxxxxxxxx wrote:

If I use the result of a function call in a condtional statement,
is it possible to return one of three possible values or is it just
true or false or a 0 or 1 status?

I want to test if a number is greater than, equal to or less than
another number.
Thus, the function should be something like:

if myfunction $num $another_num # return value is probably only 0 or
1
then
echo $num is greater than
else
echo $num is less than
fi

But I need to know if $num and $another_num are equal too.

Can I just have the function return a value (other than the status)
that could be tested?
How could I do that? Thx for your help.


I don't know if this would work, but I'd type it in and test it.

if ( a < b ) ? -1 : ( a == b ) ? 0 : 1 ;

Or is this one of those thing that is NOT portable anywhere except inside my head?

Don't know which shell supports your syntax. In ksh93 you can write...

x=$(( (a < b)? -1 : (a == b)? 0 : 1 ))


Janis


Dave
.



Relevant Pages