The following issue has been SUBMITTED. ====================================================================== https://austingroupbugs.net/view.php?id=1640 ====================================================================== Reported By: kre Assigned To: ====================================================================== Project: 1003.1(2016/18)/Issue7+TC2 Issue ID: 1640 Category: Shell and Utilities Type: Error Severity: Objection Priority: normal Status: New Name: Robert Elz Organization: User Reference: Section: XCU 3 / true Page Number: 3318 Line Number: 111745 - 111748 Interp Status: --- Final Accepted Text: ====================================================================== Date Submitted: 2023-03-12 07:00 UTC Last Modified: 2023-03-12 07:00 UTC ====================================================================== Summary: The rationale given for retaining "true" is nonsense. Description: The RATIONALE section of the page for the "true" utility says:
The true utility has been retained in this volume of POSIX.1-2017, even though the shell special built-in : provides similar functionality, because true is widely used in historical scripts and is less cryptic to novice script readers. That text remains unchanged in Issue 8 draft 2.1 The functionality is only vaguely similar, true is a normal utility, ':' is a special builtin, hence the consequences of redirection errors are different, and use, redirections are used with these utilities. Further, the OPERANDS listed for "true" are "None" which XCU 1.4 says means "When this section is listed as ``None.'', it means that the implementation need not support any operands.", which allows an implementation to do things with operands if it wants, including issueing an error message failing (turning info "false"). While none do, that I am aware of (true is generally, and entirely, "exit 0" or "exit(0)" in C) it is possible. Finally, since this bug is being submitted against Issue 7 TC2, XCU 2.9.1.1 bullet point 'd' says: If the command name matches the name of the type or ulimit utility, or of a utility listed in the following table, that utility shall be invoked. Note "shall be invoked" and "true" is in the table. If there were no "true" utility, that would be impossible, so deleting true really could not have happened (back then) no matter how redundant it seemed to be. Note that in Issue 8 draft 2.1, this has altered, it is now 2.9.1.4 (still bullet point d) but that now refers to the intrinsic utilities defined in XCU 1.7, and "true" is not in that list. Desired Action: Delete the entire RATIONAL section (lines 111746 - 111748) and replace them with <blockquote>None.</blockquote> ====================================================================== Issue History Date Modified Username Field Change ====================================================================== 2023-03-12 07:00 kre New Issue 2023-03-12 07:00 kre Name => Robert Elz 2023-03-12 07:00 kre Section => XCU 3 / true 2023-03-12 07:00 kre Page Number => 3318 2023-03-12 07:00 kre Line Number => 111745 - 111748 ======================================================================