On 6/30/23 1:19 PM, Robert Elz wrote: > Date: Thu, 29 Jun 2023 23:05:38 +0100 > From: Kerin Millar <k...@plushkava.net> > Message-ID: <20230629230538.cbef14a75694143ccf034...@plushkava.net> > > | The thing is that portage also has a legitimate stake in needing > | to enumerate all variable names. > > Why isn't "set" good enough for that? > > (set -o posix; set) | sed 's/=.*$//' | whatever_processes_them > > You need posix mode, so bash doesn't dump functions as well (which IMO > it shouldn't do with set, ever, but has probably been doing it since > prehistoric times, and somewhere, there's probably 1 user depending upon > it...)
So then you get what? The exact same thing, with all the attendant flaws, as declare -p which is already known not to work? You still have to sed/grep the contents, and you still have the original declare -p problem that you need to parse the value of the variable in order to figure out *where* it is so you can discard and ignore it... which is impractical without an actual shell parser. -- Eli Schwartz