Janis Papanagnou wrote:
> Dave Kelly wrote:
>> paintedjazz@gmail.com 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 .
>>>
>>
>> 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 ))
I don't know which shell supports it either. I wrote it using an example
from my K&R C language book.
The OP does not have to use, minus one, zero, one. He can use any value
that will fit in 'a' or 'b'. Does this take on the same type as in C code?
And does this fill the need of the OP?