View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001637 | 1003.1(2016/18)/Issue7+TC2 | Shell and Utilities | public | 2023-02-27 17:17 | 2024-06-11 09:07 |
Reporter | nick | Assigned To | |||
Priority | normal | Severity | Objection | Type | Clarification Requested |
Status | Closed | Resolution | Accepted As Marked | ||
Name | Nick Stoughton | ||||
Organization | Logitech | ||||
User Reference | |||||
Section | command | ||||
Page Number | 2596 | ||||
Line Number | 84263-84266 | ||||
Interp Status | --- | ||||
Final Accepted Text | 0001637:0006203 | ||||
Summary | 0001637: The command utility does not execute aliases | ||||
Description | The description of command with no options given states:
This suggests that alias x=ls command x should run the alias "x". No existing shell or implementation of the "command" utility I have found does this, but instead says that "x is not found" (in some form). | ||||
Desired Action | In D2.1, page 2553, line 83836, change
to
| ||||
Tags | applied_after_i8d3, tc3-2008 |
|
Yet another case where we would be far better off if the standard had no aliases. No surprise that no shells do what the text kind of looks like it expects, as aliases would have been processed long before the "command" command is executed - if one wanted to have "command" apply to aliases (alias values) as well, one could do alias command='command ' which would expand a following alias after command (as part of lexical processing) if one appears there. Without that, "command" is the word in the command word position, if that is not an alias, no further words get checked to see if they are, until the next command word position (which the following word is not, nor is it in "exec word", xargs word, env word, ... though it can be in "eval word" as that word is subject to lexical processing (to be tokenised). The desired action is not adequate however, as it gives no clue what should happen in the case in question. When the word after "command" is a function, earlier text says what happens, but nothing does if it is an alias. However, I agree that as long as aliases remain in POSIX, the text there needs to be clearer. I'd suggest something more like adding to the end of the sentence in question except that command_word does not appear in the command word Note that command also suppresses reserved words, "command if ..." runs the "if" command (from the filesystem, since command suppresses function lookups, a function named "if" can't be run this way, even in shells that allow it to be defined). eg: $ cat $HOME/bin/if #! /bin/sh echo If Only. $ command if args are ignored in that script If Only. Every shell I tested behaves like that, as they all should. |
|
After:If the command_name is the same as the name of one of the special built-in utilities, the special properties in the enumerated list at the beginning of Section 2.14 (on page 2384) shall not occur. In every other respect, if command_name is not the name of a function, the effect of command (with no options) shall be the same as omitting command .add: , except that command_name does not appear in the command word position in the command command, and consequently is not subject to alias substitution (see [xref to 2.3.1]) nor recognized as a reserved word (see [xref to 2.4]). |
Date Modified | Username | Field | Change |
---|---|---|---|
2023-02-27 17:17 | nick | New Issue | |
2023-02-27 17:17 | nick | Name | => Nick Stoughton |
2023-02-27 17:17 | nick | Organization | => Logitech |
2023-02-27 17:17 | nick | Section | => command |
2023-02-27 17:17 | nick | Page Number | => 2596 |
2023-02-27 17:17 | nick | Line Number | => 84263-84266 |
2023-02-27 17:17 | nick | Interp Status | => --- |
2023-02-27 17:17 | nick | Category | System Interfaces => Shell and Utilities |
2023-02-27 18:55 | kre | Note Added: 0006180 | |
2023-03-13 15:52 | geoffclare | Note Added: 0006203 | |
2023-03-13 15:53 | geoffclare | Final Accepted Text | => 0001637:0006203 |
2023-03-13 15:53 | geoffclare | Status | New => Resolved |
2023-03-13 15:53 | geoffclare | Resolution | Open => Accepted As Marked |
2023-03-13 15:53 | geoffclare | Tag Attached: tc3-2008 | |
2023-03-13 15:56 | geoffclare | Note Edited: 0006203 | |
2023-05-16 11:04 | geoffclare | Status | Resolved => Applied |
2023-05-16 11:04 | geoffclare | Tag Attached: applied_after_i8d3 | |
2024-06-11 09:07 | agadmin | Status | Applied => Closed |