执行简单命令。
command [ -p ] CommandName [ Argument ... ]
command [ -v | -V ] CommandName
command 命令导致 shell 将指定的命令和变量视为简单命令,禁止了 shell 功能查询。
通常,当 /(斜杠)不在命令(表示特定的路径)之前时,shell 通过搜索以下类别找到命令:
例如,如果存在具有与常规的内置相同名称的函数,则系统使用该函数。command 命令允许您调用具有与某个函数相同名称的命令,并获取简单命令。
command -v 和 command -V 命令将由 shell 使用的路径名以及 shell 如何解释命令类型(内部构件、函数、别名,等等)写到标准输出。由于 -v 和 -V 标志产生与当前 shell 环境相关的输出,所以提供 command 命令作为 Korn shell 或 POSIX shell 的常规的内置命令。由于 /usr/bin/command 命令在子 shell 或独立命令执行环境中调用,所以它可能不产生正确的结果。在以下示例中,shell 不能标识别名、子例程或特殊 shell 命令:
(PATH=foo command -v) nohup command -v
当指定 -v 或 -V 标志,则返回以下退出值:
0 | 成功完成。 |
>0 | 使用 CommandName 参数指定的命令不能找到或发生错误。 |
当未指定 -v 或 -V 标志时,返回以下退出值:
126 | 找到由 CommandName 参数指定的命令,但不能调用。 |
127 | 在 command 命令中发生错误或不能找到由 CommandName 参数指定的命令。 |
否则,command 命令返回与由 CommandName 参数指定的命令关联的退出状态。
cd () { command cd "$@" >/dev/null pwd }
IFS=' ' # The preceding value should be <space><tab><newline>. # Set IFS to its default value \unalias -a # Unset all possible aliases. # Note that unalias is escaped to prevent an alias # being used for unalias. unset -f command # Ensure command is not a user function. PATH="$(command -p getconf _CS_PATH):$PATH" # Put on a reliable PATH prefix. # ...
在此处,给出由 PATH 环境变量调用的目录的正确权限,该脚本具有确保其调用的任何命令都是计划的命令的能力。
/usr/bin/ksh | 包含 Korn shell command 内置命令。 |
/usr/bin/command | 包含 command 命令。 |