Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #16536

Re: Return from function depending on number of parameters

From Chris Elvidge <celvidge001@gmail.com>
Newsgroups gnu.bash.bug
Subject Re: Return from function depending on number of parameters
Date 2020-07-04 11:39 +0100
Message-ID <mailman.947.1593878416.2574.bug-bash@gnu.org> (permalink)
References <b1c19d38-64c0-f1ae-d08a-1ada435a0022@gmail.com> <506AA493-0D79-4A9A-A53E-279FDA72CED5@larryv.me> <rdpm9o$f3h$1@ciao.gmane.io>

Show all headers | View raw


On 03/07/2020 10:39 pm, Lawrence Velázquez wrote:
>> On Jul 3, 2020, at 2:00 PM, Chris Elvidge <celvidge001@gmail.com> wrote:
>>
>> However 'N=0; echo $((!$N))' gives an error at the bash prompt.
>> 'echo $[!$N]' echo's 1 as expected.
>>
>> My question - is $[...] actually obsolete?
> 
> It might tell you something that $[...] is not even mentioned in
> the man page for bash 3.2.57, which is decidedly not the current
> version.
> 
>> If so, what should I use at the bash prompt to get the same effect?
> 
> 
> I expect that the error you encountered was caused by !$ expanding
> to the last word of the previous command and making the contents
> of $((...)) an invalid arithmetic expression. This didn't affect
> your scripts because history expansion is not enabled in non-interactive
> shells by default.
> 
> Try inserting a space.
> 
> 	$ N=0; printf %s\\n "$((! $N))"
> 	1
> 
> You can even drop the $.
> 
> 	$ N=0; printf %s\\n "$((! N))"
> 	1
> 
> vq
> 
> 

Thanks for the suggestion.

-- 
Chris Elvidge
England

Back to gnu.bash.bug | Previous | Next | Find similar


Thread

Re: Return from function depending on number of parameters Chris Elvidge <celvidge001@gmail.com> - 2020-07-04 11:39 +0100

csiph-web