[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Return from function depending on number of parameters

From: Chris Elvidge
Subject: Re: Return from function depending on number of parameters
Date: Thu, 9 Jul 2020 17:48:41 +0100
User-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1

On 06/07/2020 12:50 pm, Greg Wooledge wrote:
On Fri, Jul 03, 2020 at 07:00:54PM +0100, Chris Elvidge wrote:
I've used 'return $((!$#))' and 'return $[!$#]' to return an error if no
parameters given to function.

The problem with this is that it *always* returns from the function,
even when paramters are given.

If you actually want to do what you said, you need a conditional check
of some kind, either "if" or "||".

(($#)) || return 1

would be my preference, if you really do not want to give any kind of
error message to indicate *why* you are returning with a failure code.

If you want to add an error message, then I would go with "if".

if ((! $#)); then
   echo "usage: myfunc arg1 ..." >&2
   return 1

This is a function only for me. The return comes after a help section.
[[ $# -eq 0 || "$1" =~ -h ]] && etc. No error message required, just an indication.

Thanks for the pointers.

Chris Elvidge

reply via email to

[Prev in Thread] Current Thread [Next in Thread]