Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <vleqhh$16m4u$1@dont-email.me>
Deutsch   English   Français   Italiano  
<vleqhh$16m4u$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: Jerry Peters <jerry@example.invalid>
Newsgroups: comp.unix.shell
Subject: Re: An interesting little quirk - difference between "bash" and "dash" (Linux)
Date: Sun, 5 Jan 2025 20:37:06 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 32
Message-ID: <vleqhh$16m4u$1@dont-email.me>
References: <vldshb$2jmh6$1@news.xmission.com>
Injection-Date: Sun, 05 Jan 2025 21:37:06 +0100 (CET)
Injection-Info: dont-email.me; posting-host="43f233de20a7eb06ba01fe216ebe57ee";
	logging-data="1267870"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/hgT5fw5eDfd3f8I+FwCGtBPeHSJCZGY4="
User-Agent: tin/2.4.5-20201224 ("Glen Albyn") (Linux/6.12.7 (x86_64))
Cancel-Lock: sha1:/NevfvVqcQWEAErSzhrUnXxVzl0=

Kenny McCormack <gazelle@shell.xmission.com> wrote:
> Consider these two command lines (run from a bash shell, but that's
> actually not relevant):
> 
> $ bash -c 'foo=bar;myfun() { local foo; echo "In myfun(), foo = $foo"; };myfun'
> In myfun(), foo =
> $ dash -c 'foo=bar;myfun() { local foo; echo "In myfun(), foo = $foo"; };myfun'
> In myfun(), foo = bar
> $
> 
> The difference is that in dash, the local foo picks up the value of the
> global foo, while in bash, it is empty.
> 
> I'm not standards obsessed like some people in these newsgroups; I care
> more about desirable functionality.  In this case, I would not be surprised
> to hear that the dash behavior is more POSIX-ly correct, but it seems clear
> to me that the bash behavior is more desirable.
> 
> I frequently use "local" precisely to ensure that I get a fresh,
> un-initialized variable.  Yes, I know that you can always do: local foo=''
> but that takes the fun out of it.
> 

It's optional in bash, see typeset:
 The -I option causes local variables to inherit the
attributes  (except  the  nameref attribute) and value of any existing
variable with the same name at a surrounding scope.  If there is no
existing variable, the local  variable  is  ini???
tially  unset.

That said, I always try to initialize locals if they're not
unconditionally set in the cide.