20 Ocak 2021 Çarşamba tarihinde Léa Gris <lea.g...@noiraude.net> yazdı:
> Le 20/01/2021 à 12:16, Oğuz écrivait : > >> $ declare -l a >> $ echo "${a:=X} $a" >> X x >> >> This doesn't jive with what the manual says. >> >> `-l`: >> >>> When the variable is assigned a value, all upper-case characters are >>> >> converted to lower-case. >> >> `:=`: >> >>> If parameter is unset or null, the expansion of word is assigned to >>> >> parameter. >> > > The assignation part: > a is assigned X but it is stored as x in a. > > The value of parameter is then substituted. >> > > The expansion part: > The value X is expanded but is not affected by the lowercase > transformation flag from a, so it remains as X. > The manual makes it explicit that it is `a''s value that is substituted, not the value assigned to it, i.e X. I'd expect `${a:=X}' to expand to a lowercase x there. I filed a similar report here: https://github.com/ksh93/ksh/issues/157 > The fact that an expansion also assign a value is a questionable design > choice though. > > If I had to use this I would just silence the expansion as an argument to > the dummy true or : command > > : ${a:=X} > > Is this a bug or am I missing something here? >> > > Then likely not. > > > -- > Léa Gris > > > -- Oğuz