diff --git a/command/help.md b/command/help.md index 3d74616c95..3b25830a32 100644 --- a/command/help.md +++ b/command/help.md @@ -1,11 +1,11 @@ help === -显示帮助信息 +该命令是bash内建命令,用于显示bash内建命令的帮助信息。 ## 补充说明 -**help命令** 用于显示shell内部命令的帮助信息。help命令只能显示shell内部的命令帮助信息。而对于外部命令的帮助信息只能使用man或者info命令查看。 +**help命令** help命令只能显示bash内建命令的帮助信息,而对于外部命令的帮助信息只能使用man或者info命令查看。 ### 语法 @@ -16,12 +16,54 @@ help(选项)(参数) ### 选项 ```shell --s:输出短格式的帮助信息。仅包括命令格式。 +-d:显示内建命令的简要描述。 +-m:按照man手册的格式输出内建命令的帮助信息。 +-s:仅输出内建命令的命令格式。 +不指定选项时:输出的帮助信息类似于-m选项,但是缺少段落名称和'SEE ALSO','IMPLEMENTATION'部分。 ``` ### 参数 -内部命令:指定需要显示帮助信息的shell内部命令。 +bash内建命令(可以为多个,请用空格分隔开)。 + +### 常见问题 + +Q:有哪些命令是bash内建命令?我如何判断一个命令是否为bash内建命令? + +A:您可以在终端使用 'man builtin' 或 'man builtins' 来获取;您可以查看bash内建命令 'type' 的帮助信息。 + +Q:那么help命令本身的帮助信息如何获取? + +A:把help作为参数传给help命令;) + +Q:为什么echo也可以用 'man echo' 来查看帮助信息? + +A:因为除了bash内建的echo,GNU/linux的coreutils包里也有该命令;在echo的man手册中,DESCRIPTION段落的 'NOTE' 也提示了和同名内建的不同。 + +PS:当你在shell脚本里定义了一个叫 'echo' 的函数,那么调用的时候优先级会如何呢? + +```shell +#!/bin/bash +#type也是内建命令 +type -t echo +echo(){ + printf "123\n" +} +type -t echo +``` + +```shell +#输出结果 +builtin +function +``` + +函数优先于内建命令,内建命令优先于外部命令。 + +Q:我需要获得更多的bash的相关帮助信息 + +A:限于篇幅和主题,您可以在终端执行 'man bash' , 'info bash' ,[访问bash官方网站](http://www.gnu.org/software/bash/),以及搜索引擎等。 + ### 实例 @@ -41,4 +83,4 @@ shopt: shopt [-pqsu] [-o long-option] optname [optname...] ``` - \ No newline at end of file +