bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Fwd: Indices of array variables are sometimes considered unset (or just


From: Great Big Dot
Subject: Fwd: Indices of array variables are sometimes considered unset (or just display an error).
Date: Tue, 6 Nov 2018 17:49:58 -0500

Crap, looks like I accidentally just replied to a single person instead of
the whole list. Here it is (and sorry if I'm uselessly cluttering up
everyone's inboxes!):

---------- Forwarded message ---------
From: Great Big Dot <greatbigdot@gmail.com>
Date: Tue, Nov 6, 2018 at 5:45 PM
Subject: Re: Indices of array variables are sometimes considered unset (or
just display an error).
To: <dualbus@gmail.com>


> On Mon, Nov 5, 2018 at 10:38 PM Eduardo Bustamante <dualbus@gmail.com>
wrote:
> Sorry, I'm having a hard time following this email thread.

My bad, sorry if I wasn't clear enough. I expected this:

    $ array=(foo)
    $ printf '%s\n' "${!array[@]-unset}"
    0

That is, I expected the keys of 'array' to be printed, unless the array was
unset. Instead, I either got errors or the "unset" string, and never the
actual keys. I didn't even realize that the indirection had something to do
with it, though once it hit me it made the behavior much clearer. I
implicitly assumed that the indirection stuff only applied to non-array
variables, and index-expansion only to array variables.

>  What is your ultimate goal or the actual problem you're trying to solve?

Honestly, I was just messing around at the command line to get the hang of
some of the expansions. IIRC, I was looking at the "parameter
transformation" stuff ("${var@Q}", "${var@A}", etc.). I was looking for any
edge cases that might trip me up in the future, and eventually I wondered
what would happen if you used an array. Somehow that led to me trying other
expansions with arrays, and I ended up getting errors I couldn't explain.

> (BTW, I would recommend against trying to do three expansions in one.
> It might be more terse, but it's hard to read and as you found out,
> leads to weird behavior)

Yeah, I think I'm starting to get that now...


reply via email to

[Prev in Thread] Current Thread [Next in Thread]