[Toybox] Would someone please explain what bash is doing here?
Rob Landley
rob at landley.net
Mon May 4 09:20:03 PDT 2020
On 5/4/20 8:39 AM, Chet Ramey wrote:
> On 5/2/20 4:01 PM, Rob Landley wrote:
>
>> Why does the export flag on $_ toggle?
>
> It does three different things. It's initially exported if bash inherits it
> from the environment at startup; after that it does its thing.
>
> "_ At shell startup, set to the absolute pathname used to invoke
> the shell or shell script being executed as passed in the envi-
> ronment or argument list. Subsequently, expands to the last ar-
> gument to the previous simple command executed in the fore-
> ground, after expansion. Also set to the full pathname used to
> invoke each command executed and placed in the environment ex-
> ported to that command. When checking mail, this parameter
> holds the name of the mail file currently being checked."
>
> We picked that up from ksh.
My question was why "declare -p _" was showing -x sometimes and not other times,
but I guess that's just an implementation detail showing through? (Unlike other
magic variables, if you unset _ it doesn't stop being magic, it still gets reset
every command. And if you "readonly _" bash gets REALLY chatty. :)
Still trying to work out what the "bash spec" would be, vs implementation details...
Rob
More information about the Toybox
mailing list