Skip to content

Commit

Permalink
Update builtin.md
Browse files Browse the repository at this point in the history
补充注意事项,修正格式。
可能随着enable的格式调整继续调整内容。
之前更新的文档有不符合当前格式的会逐步修改。
  • Loading branch information
ZhuangZhu-74 authored Aug 22, 2019
1 parent 1f27138 commit 3d5f7de
Showing 1 changed file with 30 additions and 34 deletions.
64 changes: 30 additions & 34 deletions command/builtin.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,62 +3,54 @@ builtin

执行bash内建命令。

## 补充说明

**builtin命令** 用于执行指定的bash内建命令,并返回内部命令的返回值。builtin命令在使用时,Linux中同名的外部命令及同名的shell函数失效。

### 语法
## 概要

```shell
builtin(bash内建命令)(参数)
builtin [shell-builtin [arg ...]]
```
### 参数
## 主要用途
- 用于执行指定的bash内建命令。
- `builtin`命令调用的bash内建命令优先于同名的外部命令及同名的shell函数。
## 参数
bash内建命令:指定需要执行的bash内建命令
shell-builtin(可选):要调用的bash内建命令
(可选)参数:传递给bash内建命令的参数
arg(可选):传递给bash内建命令的一到多个参数
### 提示
## 返回值
**同名情况下的优先级顺序**
返回该内建命令执行的返回值,除非传递的不是bash内建命令或该内建命令被禁用。
## 例子
同名情况下的优先级顺序:
builtin 内建命令 > 函数 > 内建命令 > 外部命令
```shell
#!/bin/bash
#此时内建命令优先使用
# 关于外部命令优先级最高的情况请参考enable命令。
# 此时内建命令优先使用
echo "the Great Wall"
#调用内建命令type,显示命令的类型
# 调用内建命令type,返回命令的类型(builtin)
type -t echo
#定义 echo 函数
# 定义 echo 函数
echo(){
printf "123\n"
}
#此时同名函数优先使用
# 此时同名函数优先使用,显示(123)
echo
# 调用内建命令type,返回命令的类型(function)
type -t echo
#此时内建命令优先使用
# 此时内建命令优先使用
builtin echo -e "backslash \\"
```
```shell
#输出结果
the Great Wall
builtin
123
function
backslash \
```

内建命令的帮助信息请参考 'help' 命令

### 实例

使用builtin命令执行bash内建命令alias:

```shell
builtin alias # 执行shell内部指令
# 执行shell内部指令,输出当前系统下的命令别名
builtin alias
alias cp='cp -i'
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
Expand All @@ -68,7 +60,11 @@ alias rm='rm -i'
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/ -->

0 comments on commit 3d5f7de

Please sign in to comment.