Path: csiph.com!goblin3!goblin1!goblin.stu.neva.ru!usenet.stanford.edu!not-for-mail From: Robert Elz Newsgroups: gnu.bash.bug Subject: Re: GNU Bash v.4.4.23-5 built-in function 'set' produces variable outputs Date: Mon, 22 Oct 2018 12:54:42 +0700 Lines: 25 Approved: bug-bash@gnu.org Message-ID: References: <20181019195026.mmtktfswn3evxvlw@eeg.ccf.org> NNTP-Posting-Host: lists.gnu.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: usenet.stanford.edu 1540187764 18637 208.118.235.17 (22 Oct 2018 05:56:04 GMT) X-Complaints-To: action@cs.stanford.edu To: bug-bash Envelope-to: bug-bash@gnu.org In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2001:3c8:9009:181::2 X-BeenThere: bug-bash@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Bug reports for the GNU Bourne Again SHell List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Xref: csiph.com gnu.bash.bug:14727 Date: Fri, 19 Oct 2018 16:21:27 -0400 From: Grisha Levit Message-ID: | I guess it's a bit surprising that $_ is set to just the variable name | and not "the last argument to the previous command", which would be | the full assignment string. Except that a var assign isn't a command at all, but something different, and one could argue that with no command $_ should retain its value from whatever was the last command. But $_ has so many different uses in bash (and ksh93) and was a horrible botch in the first place (from when it was first added to ksh) so what it does isn't worth being concerned about - as best as can be done, simply ignore it, and hope it eventually goes away.... kre ps: it would be really nice if, in bash (and everywhere else) $_ could turn into one of the magic vars which loses its special properties when unset. Scripts that want to use $_ (if there are any, which I doubt) won't be unsetting it and would continue to work, the rest of us (at least those of us not insane enough to try and use it) could just "unset _" in .profile (etc) and be done with it.