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


Groups > gnu.bash.bug > #16638

Re: No word splitting for assignment-like expressions in compound assignment

From Chet Ramey <chet.ramey@case.edu>
Newsgroups gnu.bash.bug
Subject Re: No word splitting for assignment-like expressions in compound assignment
Date 2020-07-28 10:22 -0400
Organization ITS, Case Western Reserve University
Message-ID <mailman.205.1595946228.2739.bug-bash@gnu.org> (permalink)
References <6614fa7668daf7f2b450e319a28b624c@ispras.ru> <58020735-2ddb-e1a4-a513-a09560876e87@case.edu>

Show all headers | View raw


On 7/23/20 8:11 PM, Alexey Izbyshev wrote:
> Hello!
> 
> I have a question about the following behavior:
> 
> $ Z='a b'
> $ A=(X=$Z)
> $ declare -p A
> declare -a A=([0]="X=a b")
> $ A=(X$Z)
> $ declare -p A
> declare -a A=([0]="Xa" [1]="b")
> 
> I find it surprising that no word splitting is performed in the first
> compound assignment. I realize that skipping word splitting may be
> desirable if a subscript is given (e.g. "A=([0]=$Z)") to make it consistent
> with normal variable assignment[1], but in this case it looks like a bug.

It's an assignment statement in a context where assignment statements are
accepted (which is what makes it different from `echo X=$Z', for instance),
but the lack of a subscript on the lhs makes it a special case. I'll take a
look at the semantics here.

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
		 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    chet@case.edu    http://tiswww.cwru.edu/~chet/

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


Thread

Re: No word splitting for assignment-like expressions in compound assignment Chet Ramey <chet.ramey@case.edu> - 2020-07-28 10:22 -0400

csiph-web