Shell内建命令是由Bash自身提供的命令,而不是文件系统中的某个可执行文件。
判断一个命令是否是内建命令可以通过type命令,如:
type cd
type date
输出分别为:
cd is a shell builtin
date is /bin/date
可以看出cd是内建命令,而date是一个外部文件/bin/date。通常来说,内建命令会比外部命令执行得更快,执行外部命令时不但会触发磁盘 I/O,还需要 fork 出一个单独的进程来执行,执行完成后再退出。而执行内建命令相当于调用当前 Shell 进程的一个函数。
下面的shell内置命令是从Bourne shell继承的。这些命令由POSIX标准指定来实现。
: | . | break | cd | continue | eval | exec |
exit | export | getopts | hash | pwd | readonly | return |
shift | test | [ | times | trap | umask | uset |
以下是Bash中惟一的或扩展的内置命令。
alias | bind | builtin | caller | command | declare | echo |
enable | help | let | local | logout | mapfile | printf |
read | readarray | source | type | typeset | ulimit |