From c84122d8383b91f3ded4319ec60fe763ee027f56 Mon Sep 17 00:00:00 2001 From: ZhuangZhu-74 <49544524+ZhuangZhu-74@users.noreply.github.com> Date: Fri, 14 Jun 2019 16:28:39 +0800 Subject: [PATCH] Update builtin and help (#119) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update builtin.md 修改并丰富了文档,将一小部分之前属于help的内容修改后放到了这里。 * Update help.md 配合builtin命令的更改进行内容调整 * Update builtin.md 增加内建命令帮助信息提示 --- command/builtin.md | 48 ++++++++++++++++++++++++++++++++++++++++------ command/help.md | 18 +---------------- 2 files changed, 43 insertions(+), 23 deletions(-) diff --git a/command/builtin.md b/command/builtin.md index 228362bed6..0c3e648c6d 100644 --- a/command/builtin.md +++ b/command/builtin.md @@ -1,25 +1,61 @@ builtin === -执行shell内部命令 +执行bash内建命令。 ## 补充说明 -**builtin命令** 用于执行指定的shell内部命令,并返回内部命令的返回值。builtin命令在使用时,将不能够再使用Linux中的外部命令。当系统中定义了与shell内部命令相同的函数时,使用builtin显式地执行shell内部命令,从而忽略定义的shell函数。 +**builtin命令** 用于执行指定的bash内建命令,并返回内部命令的返回值。builtin命令在使用时,Linux中同名的外部命令及同名的shell函数失效。 ### 语法 ```shell -builtin(参数) +builtin(bash内建命令)(参数) ``` ### 参数 -shell内部命令:指定需要执行的shell内部命令。 +bash内建命令:指定需要执行的bash内建命令。 + +(可选)参数:传递给bash内建命令的参数。 + +### 提示 + +**同名情况下的优先级顺序** + +builtin 内建命令 > 函数 > 内建命令 > 外部命令 + +```shell +#!/bin/bash +#此时内建命令优先使用 +echo "the Great Wall" +#调用内建命令type,显示命令的类型 +type -t echo +#定义 echo 函数 +echo(){ + printf "123\n" +} +#此时同名函数优先使用 +echo +type -t echo +#此时内建命令优先使用 +builtin echo -e "backslash \\" +``` + +```shell +#输出结果 +the Great Wall +builtin +123 +function +backslash \ +``` + +内建命令的帮助信息请参考 'help' 命令 ### 实例 -使用builtin命令执行shell内部命alias显示命令别名,输入如下命令: +使用builtin命令执行bash内建命令alias: ```shell builtin alias # 执行shell内部指令 @@ -35,4 +71,4 @@ alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-ti 上面的命令执行后,将输出当前系统下的命令别名。 - \ No newline at end of file + diff --git a/command/help.md b/command/help.md index 3353258291..d930554557 100644 --- a/command/help.md +++ b/command/help.md @@ -42,23 +42,7 @@ A:因为除了bash内建的echo,GNU/linux的coreutils包里也有该命令 PS:当你在shell脚本里定义了一个叫 'echo' 的函数,那么调用的时候优先级会如何呢? -```shell -#!/bin/bash -#type也是内建命令 -type -t echo -echo(){ - printf "123\n" -} -type -t echo -``` - -```shell -#输出结果 -builtin -function -``` - -函数优先于内建命令,内建命令优先于外部命令。 +请参考 'builtin' 命令 Q:我需要获得更多的bash的相关帮助信息