LOGNAME (str)
LOGNAME (str)
Username for the current session (historic)
Description
LOGNAME returns the user name of the current Murex session. It's behaviour is identical to USER.
LOGNAMEis a historical relic. Please useUSERin your scripts instead.
This is a reserved variable so it cannot be changed.
Detail
USER vs LOGNAME
The $USER and $LOGNAME environment variables serve similar but slightly different purposes. Plus and their distinctions stem from historical and compatibility reasons.
Historical Context:
$LOGNAMEoriginates from early AT&T UNIX systems and was intended to hold the user’s login name, particularly for system utilities that relied on it.It has been part of POSIX since early UNIX specifications, which is why it is a required variable in POSIX-compliant systems.
$USERcame from BSD UNIX and was commonly used by shells and more user- focused applications. This variable has been adopted widely in modern systems like Linux to refer to the current user within shell scripts and interactive environments.
Functional Difference:
Both variables typically hold the same value, representing the current user's login name. However, in certain contexts in POSIX environments, (such as running
sudofrom Bash), their behavior may differ:$LOGNAMEis more tightly bound to the user who originally logged in,while
$USERmay be altered during a session.
With regards to Murex, both variables call the same underlying function and thus will always return the same values under all circumstances.
Why Two Variables?:
In POSIX shells like Bash, the existence of both
$LOGNAMEand$USERreflects the integration of features from both AT&T UNIX and BSD UNIX. Although they usually return the same value, POSIX mandates$LOGNAMEfor broader system compatibility, especially with utilities that depend on login information.However with Murex, there isn't any requirement to maintain POSIX compatibility with AT&T UNIX. What's more, neither of these two variables are defined as environmental variables.
The reason Murex retains supports for
$LOGNAMEas a reserved variable is simply to ensure nobody accidentally uses$LOGNAMEfor any other purposes (such as logging) and then get confused why other utilities might break after they've overwritten the contents of$LOGNAME
See Also
- Reserved Variables: Special variables reserved by Murex
USER(str): Username for the current sessionstr(string): string (primitive)
This document was generated from gen/variables/LOGNAME_doc.yaml.