Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > gnu.bash.bug > #16674
| From | Lawrence Velázquez <vq@larryv.me> |
|---|---|
| Newsgroups | gnu.bash.bug |
| Subject | Re: set -u not working as expected |
| Date | 2020-08-02 03:34 -0400 |
| Message-ID | <mailman.497.1596353670.2739.bug-bash@gnu.org> (permalink) |
| References | <000301d66834$588493c0$098dbb40$@kalvr.net> <F4821044-5F8D-4B6D-A266-BAC88AE3DC2C@larryv.me> <1867D8FC-85DD-4406-A239-3002913493AB@larryv.me> <CAH7i3Lr7ZCYJVpPZdc9xQMuF_yc_C2q0S9px+NY4prEUkU+24w@mail.gmail.com> <61B2CB9D-3978-4872-B88A-1542CF95B5B9@larryv.me> |
> On Aug 2, 2020, at 2:51 AM, Oğuz <oguzismailuysal@gmail.com> wrote:
>
> `u' has no members, so there's nothing to expand. If you use `${u[0]}' for
> example, you'll see an error, I think how bash and ksh behave is perfectly
> reasonable.
Agreed. Their behavior logically follows from POSIX's carveout for $@.
>> % bash -c 'set -u; typeset -i v; printf "<%s>\\n" "$v"'
>> bash: v: unbound variable
>> % ksh -c 'set -u; typeset -i v; printf "<%s>\\n" "$v"'
>> ksh: v: parameter not set
>> % zsh -c 'set -u; typeset -i v; printf "<%s>\\n" "$v"'
>> <0>
>>
>>
> `typeset -i v' doesn't assign `v', just gives it the integer attribute.
> Again, I can't see any problem with bash and ksh here.
Also agreed, but I was more interested in the next part...
>> % bash -c 'set -u; typeset -i v; v+=1; printf "<%s>\\n" "$v"'
>> <1>
>> % ksh -c 'set -u; typeset -i v; v+=1; printf "<%s>\\n" "$v"'
>> <1>
>> % zsh -c 'set -u; typeset -i v; v+=1; printf "<%s>\\n" "$v"'
>> <1>
...which contrasts with the behavior of let. Someone else will have
to explain this, as I don't know what to make of it.
vq
Back to gnu.bash.bug | Previous | Next | Find similar
Re: set -u not working as expected Lawrence Velázquez <vq@larryv.me> - 2020-08-02 03:34 -0400
csiph-web