Path: csiph.com!xmission!news.snarked.org!news.linkpendium.com!news.linkpendium.com!panix!usenet.stanford.edu!not-for-mail From: Grisha Levit Newsgroups: gnu.bash.bug Subject: assoc_expand_once issues Date: Thu, 20 Sep 2018 18:37:57 -0400 Lines: 56 Approved: bug-bash@gnu.org Message-ID: NNTP-Posting-Host: lists.gnu.org Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" X-Trace: usenet.stanford.edu 1537483094 10640 208.118.235.17 (20 Sep 2018 22:38:14 GMT) X-Complaints-To: action@cs.stanford.edu To: bug-bash 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=9FhdWzZbVYZDiwjfaj1ogIRNeKusoAzY+B0J9HV/ufw=; b=YG7iSSKiP/ZcHDhG4u9ZcH9tOi97jmI9kRLETqcgHBHr8czuSewT+kC5MXwPw/KVkV IoWqxCJS9Owr4dDgceuSC88+sM9WYVIOjzi5qkPIuQ3s+8HXswUZvjJqA/AbW5Gzs6ch tgWmy3YpCKEevApCNf15RdWKIlJMpAj3AyyHB7PwHhEldKU45C/pPuI4rTIDWuFJWzjK xrSS8igYPbCNL2pqRa7paeU+ya3Os3eJuFh5T+ie9HGwMMEdEFcYaF+sw20cBq/uSBTc +2vt+BXaUNS19x6VmpdHvpN6TLaZgSJ5N0gdaBMCCrAd8V/lkR4UB/kazGkPn8AxFGm2 vPiw== 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=9FhdWzZbVYZDiwjfaj1ogIRNeKusoAzY+B0J9HV/ufw=; b=b/r6t4uPm5kZd+b8Sl+uAx67z+5wl5S5sU1ypZ8WswxQfvNgKV4Vdj4FkmvLS34Gad 4hz8qpnv1UFV/Ga4GOhL+CKaXiBz2MRDNgMSd0hFbAkwRPb4QLuO3jeG9Dzjx7ak4ceg /umE2IKzby5IWnb6nleOlBRB04rVYegrQxg72Z/OMRXrk4or5ydg5zHxTrEGHzshlOnw 5uGWQV+fqmWO8XKEcLc+gPfbKy99eYHoUnG/GeiqoObnb3oCOb+S6Ep1Tbb0DDR9wRJf aWDU4d60GycX0+WFclpUYXLzbnkfJaeYI7r4Me4P6s3PgJ7Tdx2y47U6xsHvMY5/onrT J/Vw== X-Gm-Message-State: APzg51BJkpQcDTET32jPO3nFND0PJScHMChzPGwnjdUKructhQ9GbRvP nwSMonbb4ey/dgNCjKBVZsIyA20rv8AF3FBUHxH0TA== X-Google-Smtp-Source: ANB0Vdbf/+06aSA2SjKD0vMGqJcvWKW/IDx/fao8KnTW+4Wy8zSeIm+gMGv0WNs1aSti4g/FQW6JMe6RzxygEr3amP8= X-Received: by 2002:a2e:4242:: with SMTP id p63-v6mr26562942lja.83.1537483088351; Thu, 20 Sep 2018 15:38:08 -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-Content-Filtered-By: Mailman/MimeDel 2.1.21 X-BeenThere: bug-bash@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Bug reports for the GNU Bourne Again SHell List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Xref: csiph.com gnu.bash.bug:14612 I was testing out this new feature and I can't figure out how to handle certain characters in subscripts when the option is on. Without the option, it is possible to escape the `$' in the subscript to achieve the desired result but obviously that does not work if the option *is* on -- is there a different workaround to use or is this a bug with assoc_expand_once? Specifically, the following characters prove to cause an issue: shopt -s assoc_expand_once declare -A A for k in $'\t' ' '; do (( A[$k]=2 )) declare -p A done # declare -A A=() # declare -A A=() for k in ']' '*' '@'; do (( A[$k]=2 )) done # -bash: ((: A[]]=2: syntax error: invalid arithmetic operator (error token is "]=2") # -bash: A[*]: bad array subscript # -bash: A[@]: bad array subscript for k in $'\t' ' ' ']' '*' '@'; do read "A[$k]" <<< X # or printf -v "A[$k]" X done # -bash: read: `A[ ]': not a valid identifier # -bash: read: `A[ ]': not a valid identifier # -bash: read: `A[]]': not a valid identifier # -bash: A[*]: bad array subscript # -bash: A[@]: bad array subscript for k in ']' '*' '@'; do declare A[$k]=X done # -bash: declare: `A[]]=X': not a valid identifier # -bash: A[*]: bad array subscript # -bash: A[@]: bad array subscript for k in $'\t' ' ' ']'; do unset "A[$k]" done # -bash: unset: `A[ ]': not a valid identifier # -bash: unset: `A[ ]': not a valid identifier # -bash: unset: `A[]]': not a valid identifier for k in '*' '@'; do declare -A A; unset "A[$k]"; declare -p A done # -bash: declare: A: not found # -bash: declare: A: not found