In the comments to the accepted answer to this Unix & Linux StackExchange question, it is stated that $_ is "one of only some 7 special parameters defined by POSIX". I can't find that definition although I can find eight other special parameters defined by POSIX and I've seen $_ defined in the ksh and bash man pages. Can someone point me to the definition in POSIX?
Asked
Active
Viewed 638 times
7
-
1Neither the question you link to nor its answers claim that `$_` is POSIX. – terdon May 13 '14 at 22:58
-
4@terdon It's a [comment by mikeserv](http://unix.stackexchange.com/questions/128830/is-it-ok-to-use-to-run-files-instead-of-source-in-bashrc-in-ubuntu-and-os#comment206503_128834). He's wrong. – Gilles 'SO- stop being evil' May 13 '14 at 23:55
-
@terdon I've updated my question to clarify where that statement is in the question. – jrw32982 May 14 '14 at 02:20
1 Answers
11
The only reference I can find to the special parameter $_ in POSIX is in the rationale section on Shell Variables. This excerpt implies that it was used by a variety of shells, but not in a standard way by all and was omitted intentionally:
_
(Underscore.) While underscore is historical practice, its overloaded usage in the KornShell is confusing, and it has been omitted from the Shell and Utilities volume of IEEE Std 1003.1-2001.
So it may be used by most or all POSIX-conforming shells, but it is decidedly not defined by POSIX.
Michael Miller
- 799
- 7
- 18
-
At least Debian dash, Busybox dash and mksh only set `$_` when they are interactive. – Gilles 'SO- stop being evil' May 13 '14 at 23:59