00. 目录
01. 命令概述
builtin命令用于执行指定的shell内部命令,并返回内部命令的返回值。builtin命令在使用时,将不能够再使用Linux中的外部命令。当系统中定义了与shell内部命令相同的函数时,使用builtin显式地执行shell内部命令,从而忽略定义的shell函数。
02. 命令格式
用法:builtin [shell 内嵌 [参数 ...]]
- 1
03. 常用选项
无
- 1
04. 参考示例
4.1 执行shell内部指令
[root@localhost ~]# builtin alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@localhost ~]#
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
4.2 执行内建命令echo
[root@localhost ~]# type -a echo
echo 是 shell 内嵌
echo 是 /bin/echo
echo 是 /usr/bin/echo
[root@localhost ~]# builtin echo "hello itcast"
hello itcast
[root@localhost ~]#
- 1
- 2
- 3
- 4
- 5
- 6
- 7
4.3 执行内建命令umask
[root@localhost ~]# umask
0022
[root@localhost ~]# umask() { echo "hello itcast"; }
[root@localhost ~]# umask
hello itcast
[root@localhost ~]# builtin umask
0022
[root@localhost ~]#
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
builtin命令用以执行shell的内建命令,既然是内建命令,为什么还要以这种方式执行呢?因为shell命令执行时首先从函数开始,如果自定义了一个与内建命令同名的函数,那么就执行这个函数而非真正的内建命令。
评论记录:
回复评论: