Update builtin.md

补充注意事项,修正格式。
可能随着enable的格式调整继续调整内容。
之前更新的文档有不符合当前格式的会逐步修改。
This commit is contained in:
ZhuangZhu-74 2019-08-22 16:16:08 +08:00 committed by GitHub
parent 1f271386b1
commit 3d5f7de56f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 30 additions and 34 deletions

View File

@ -3,62 +3,54 @@ builtin
执行bash内建命令。 执行bash内建命令。
## 补充说明 ## 概要
**builtin命令** 用于执行指定的bash内建命令并返回内部命令的返回值。builtin命令在使用时Linux中同名的外部命令及同名的shell函数失效。
### 语法
```shell ```shell
builtin(bash内建命令)(参数) builtin [shell-builtin [arg ...]]
``` ```
### 参数 ## 主要用途
bash内建命令指定需要执行的bash内建命令。 - 用于执行指定的bash内建命令。
- `builtin`命令调用的bash内建命令优先于同名的外部命令及同名的shell函数。
可选参数传递给bash内建命令的参数。 ## 参数
### 提示 shell-builtin可选要调用的bash内建命令。
**同名情况下的优先级顺序** arg可选传递给bash内建命令的一到多个参数。
## 返回值
返回该内建命令执行的返回值除非传递的不是bash内建命令或该内建命令被禁用。
## 例子
同名情况下的优先级顺序:
builtin 内建命令 > 函数 > 内建命令 > 外部命令 builtin 内建命令 > 函数 > 内建命令 > 外部命令
```shell ```shell
#!/bin/bash # 关于外部命令优先级最高的情况请参考enable命令。
#此时内建命令优先使用 # 此时内建命令优先使用
echo "the Great Wall" echo "the Great Wall"
#调用内建命令type,显示命令的类型 # 调用内建命令type返回命令的类型builtin
type -t echo type -t echo
#定义 echo 函数 # 定义 echo 函数
echo(){ echo(){
printf "123\n" printf "123\n"
} }
#此时同名函数优先使用 # 此时同名函数优先使用显示123
echo echo
# 调用内建命令type返回命令的类型function
type -t echo type -t echo
#此时内建命令优先使用 # 此时内建命令优先使用
builtin echo -e "backslash \\" builtin echo -e "backslash \\"
``` ```
```shell ```shell
#输出结果 # 执行shell内部指令输出当前系统下的命令别名
the Great Wall builtin alias
builtin
123
function
backslash \
```
内建命令的帮助信息请参考 'help' 命令
### 实例
使用builtin命令执行bash内建命令alias
```shell
builtin alias # 执行shell内部指令
alias cp='cp -i' alias cp='cp -i'
alias l.='ls -d .* --color=tty' alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty' alias ll='ls -l --color=tty'
@ -68,7 +60,11 @@ alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
``` ```
上面的命令执行后,将输出当前系统下的命令别名。 ### 注意
1. 该命令是bash内建命令相关的帮助信息请查看`help`命令。
2. 如果要调用的内建命令被禁用了(包括`builtin`),那么执行会报错;关于禁用和启用内建命令请参考`enable`命令。
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ --> <!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->