The command built-in executes or identifies a command.


  • command [-befp] command [argument…]

  • command -v|-V [-abefkp] command


Without the -v (--identify) or -V (--verbose-identify) option, the built-in executes command with arguments in the same manner as the last step of execution of simple commands. The command is treated as a built-in or external command or a function according to the options specified to the command built-in. The shell does not exit on argument syntax error etc. even if the command is a special built-in

With the -v (--identify) option, command is identified. If the command is found in $PATH, its full pathname is printed. If it is a keyword, function, or built-in that is not found in $PATH, the command name is simply printed. If it is an alias, it is printed in the form like alias ll='ls -l'. If the command is not found, nothing is printed and the exit status is non-zero.

The -V (--verbose-identify) option is similar to the -v (--identify) option, but the output format is more human-friendly.



Search for the command as an alias. Must be used with the -v (--identify) or -V (--verbose-identify) option.


Search for the command as a built-in.


Search for the command as an external command.


Search for the command as a function.


Search for the command as a keyword. Must be used with the -v (--identify) or -V (--verbose-identify) option.


Search the system’s default PATH instead of the current $PATH.


Identify commands and print in the format defined in the POSIX standard.


Identify commands and print in a human-friendly format.

If none of the -a (--alias), -b (--builtin-command), -e (--external-command), -f (--function), and -k (--keyword) options is specified, the following defaults are assumed:

Without the -v (--identify) or -V (--verbose-identify) option

-b -e

With the -v (--identify) or -V (--verbose-identify) option

-a -b -e -f -k



A command to be executed or identified.


Arguments passed to the executed command.

Exit status

The exit status of the command built-in is:

Without the -v (--identify) or -V (--verbose-identify) option

the exit status of the executed command.

With the -v (--identify) or -V (--verbose-identify) option

zero unless there is any error.


The command built-in is a mandatory built-in.

In the POSIXly-correct mode, options other than -p, -v, and -V cannot be used and at most one command can be specified. The POSIX standard does not allow specifying both -v and -V together, but yash does (only the last specified one is effective).