Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > gnu.bash.bug > #14356
| Path | csiph.com!fu-berlin.de!usenet.stanford.edu!not-for-mail |
|---|---|
| From | Grisha Levit <grishalevit@gmail.com> |
| Newsgroups | gnu.bash.bug |
| Subject | delcare -a on a nameref in a function modifies nameref instead of target |
| Date | Tue, 17 Jul 2018 17:47:20 -0400 |
| Lines | 22 |
| Approved | bug-bash@gnu.org |
| Message-ID | <mailman.3736.1531864056.1292.bug-bash@gnu.org> (permalink) |
| NNTP-Posting-Host | lists.gnu.org |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset="UTF-8" |
| X-Trace | usenet.stanford.edu 1531864057 20659 208.118.235.17 (17 Jul 2018 21:47:37 GMT) |
| X-Complaints-To | action@cs.stanford.edu |
| To | bug-bash <bug-bash@gnu.org> |
| Envelope-to | bug-bash@gnu.org |
| DKIM-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=obcvdHHbNwkQUPSrWA/W75UWKJyAGSynLuIQjZ4wkfw=; b=kmNwOXrNdX+FkLD3Se8PhLxczVTzAUtR1MWyGvsZkZICT5BBq3lJ4tiywF/oA3fDOo MuMBiPAO9VOTizjo6EWM1Tara2fvMw0LeZUqM1OAIWPSDjUU7gNH+9fqG3gyv4r4P5ou 9sZ8yt5sACYPaGrmGMNKM4erzrftmR9jkA4NmkLBOUycbJ6p56qryp4GlGcAc6At70PM Z2HXCmmUOL/K+Ycnm1HOnsDbB8QoiIiehNsB5JIZvISbYbZG/Hu8vRpcWuWMhFxrYMsb ml7XSDUOZZAx4hRBt/O+2NmSV3V2V2NCsmbEoq4gYo2GeBeZGAqiU/ygq10cd0w54irv Tqkg== |
| X-Google-DKIM-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=obcvdHHbNwkQUPSrWA/W75UWKJyAGSynLuIQjZ4wkfw=; b=UXdb44r4IJvdB0KH1vke3a+vLJbf465FblQlhp1yER1aV9P46IazVugYV6oCr2Ubj3 z6Lrc81t13sylIHKzc8Ldz7WbJnWi6/RK2FY/UtYofQ9LyrpnY5YA61s0sZS/T+PETED qYQSI5F/ULDBb5MAaKGAEQ+oBW8TX1ZTGi7zwG7UXwnw+jiQLyi5ohz0jjN0l+6G4tdH fBMcSdVfqxBZscd5Nbz8KpXB3AFcmzwPmac2FfrzsdfPWOimh52HujPk+Bt1nVou8mN1 24e9JQWmnAaZ4tCS8I8MRVi7SEDqvbSinnvbg/mcOlfxCO/S1i+tKflvWnBIGrKqu9Em Z2PA== |
| X-Gm-Message-State | AOUpUlF0w3sxbYdoyTvyxzwavqFZJFleAKvYY1uEzwVSSAu0APCkXixG j0IE7iE9duhD76f7l7F5f16OHTc58jN7OPGksuS2tYV8 |
| X-Google-Smtp-Source | AAOMgpdPgB0kcW3a+AIpQMti5KAvQ08W6joEStKNInGPfe+ibwywYNqwL3WGQl74xKekvSqs8TVPbQxNlUsqF/si08I= |
| X-Received | by 2002:a2e:9d0e:: with SMTP id t14-v6mr2554262lji.112.1531864051755; Tue, 17 Jul 2018 14:47:31 -0700 (PDT) |
| X-detected-operating-system | by eggs.gnu.org: Genre and OS details not recognized. |
| X-Received-From | 2a00:1450:4864:20::22a |
| X-BeenThere | bug-bash@gnu.org |
| X-Mailman-Version | 2.1.21 |
| Precedence | list |
| List-Id | Bug reports for the GNU Bourne Again SHell <bug-bash.gnu.org> |
| List-Unsubscribe | <https://lists.gnu.org/mailman/options/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=unsubscribe> |
| List-Archive | <http://lists.gnu.org/archive/html/bug-bash/> |
| List-Post | <mailto:bug-bash@gnu.org> |
| List-Help | <mailto:bug-bash-request@gnu.org?subject=help> |
| List-Subscribe | <https://lists.gnu.org/mailman/listinfo/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=subscribe> |
| Xref | csiph.com gnu.bash.bug:14356 |
Show key headers only | View raw
At global scope this works as expected:
$ declare -n ref=var; declare -a ref=(X); declare -p ref var
declare -n ref="var"
declare -a var=([0]="X")
But in a function, we end up with the nameref variable having both the
`a' and `n' attributes and nothing in the target:
$ f() { declare -n ref=var; declare ref=(X); declare -p ref var; }; f
declare -an ref=([0]="X")
-bash: declare: var: not found
And a slight modification ends up modifying a global variable instead:
$ f() { declare -n ref=var; declare -a ref; ref=(X); declare -p ref
var; }; f; declare -p ref var
declare -an ref=()
-bash: declare: var: not found
declare -a ref=([0]="X")
-bash: declare: var: not found
Back to gnu.bash.bug | Previous | Next | Find similar | Unroll thread
delcare -a on a nameref in a function modifies nameref instead of target Grisha Levit <grishalevit@gmail.com> - 2018-07-17 17:47 -0400
csiph-web