You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.
Hi. I'm new to your project, and am starting at the beginning (no guarantee I'll continue)...
In your very first snippet, labeled "Trim leading and trailing white-space from string", you write: "The : built-in is used in place of a temporary variable."
Is that really what's happening? AFACIT the ; is a no-op built-in command, having nothing to to do with any variable. Your snippet seems to be using the $_ shell variable, which according to the man page "expands to the last argument the previous simple command executed in the foreground, after expansion."
If I'm understanding the snippet correctly, the explanation should read something like "The $_ shell variable is used in place of a temporary variable. It is updated as an undocumented side-effect of the : null built-in.
Also, since the side-effect that the snippets exploits seems at odds with the documentation for the : command ("null command: no effect; the command DOES NOTHING"), is there documentation supporting this use? What I mean is, are the bash developers committed to the continued existence of this behavior, or it just an undocumented serendipitous occurrence for an officially 'undefined' result that could change at any time without notice?
The text was updated successfully, but these errors were encountered:
: and $_ are POSIX. bash has both legacy [ and new [[, old let and new $((, preserving compatibility, there is no basis for panic.
: did not change for over 43 years nor it'll change now, the behaviour matches sh. The documentation said : does not react to anything passed on, it works as the standard demands to do. Both features are documented and combining documented stuff together doesn't count as undocumented in my view.
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Hi. I'm new to your project, and am starting at the beginning (no guarantee I'll continue)...
In your very first snippet, labeled "Trim leading and trailing white-space from string", you write: "The
:
built-in is used in place of a temporary variable."Is that really what's happening? AFACIT the
;
is a no-op built-in command, having nothing to to do with any variable. Your snippet seems to be using the $_ shell variable, which according to the man page "expands to the last argument the previous simple command executed in the foreground, after expansion."If I'm understanding the snippet correctly, the explanation should read something like "The
$_
shell variable is used in place of a temporary variable. It is updated as an undocumented side-effect of the:
null built-in.Also, since the side-effect that the snippets exploits seems at odds with the documentation for the
:
command ("null command: no effect; the command DOES NOTHING"), is there documentation supporting this use? What I mean is, are the bash developers committed to the continued existence of this behavior, or it just an undocumented serendipitous occurrence for an officially 'undefined' result that could change at any time without notice?The text was updated successfully, but these errors were encountered: