On Wed, Nov 23, 2022 at 11:31:57PM +1059, Reuben mac Saoidhea wrote:
> i hate to harp on about it, but:
> 
> in case you happen to discover the `command' command,
> beware that its description in sh(1) is wrong.
> 
> sh(1) says:
>       command -vV command args ...
> 

actually openbsd's sh(1) pages says:

        command [-p | -V | -v] command [arg ...]

> in fact it is:
>       command -vV command ...
> 

yes, -v and -V are different. instead of invoking command, they identify
information about "command", such as path used to run it.

so we could do like posix and show two differing forms:

        command [-p] command_name [argument]
        command [-p][-v|-V] command_name

however one of the goals of sh(1) was brevity. to that end it is
combined, and i think it is obvious that if you are asking "command" to
identify whether something is a function (or whatever) then it would be
silly to specify it with arguments.

> note in particular, that, like `type',
>       command -V command echo
> 
> outputs
>       command is a shell builtin
>       echo is a shell builtin

well, posix makes no claim that multiple arguments are supported with
either -v or -V. openbsd's sh(1) page does not say this either. you
could write some code to improve how this is handled, i suppose.

having said that, ksh(1) seems to contradict what i've just said:

        If the -v option is given, instead of executing cmd, information
        about what would be executed is given (and the same is done for
        arg ...).

that doesn;t seem to be the case. i'm not sure whether ksh(1) is wrong
or it's expected to behave differently.

> 
> rather than what `command -V' ought to output:
>       command echo is /bin/echo
> 

        $ command -V echo
        echo is a shell builtin

jmc

> to find out what `command blahcommand' means to sh(1), use
>       whereis blahcommand
> 
> to find out what `blahcommand' means to sh(1), use
>       type blahcommand
> 
> noting that `type' is explained in `man sh',
> and that `tracked alias' means `hash'.
> (note that using `type' affects `hash'.)
> 
> isnt *N*X FUN!?
> 

Reply via email to