-
shell执行的命令可以分为内建命令(built-in)和外部命令(external),前者是构建在shell内部;后者是一个独立的文件(可以是二进制文件,也可以是一个脚本)。
-
内建命令的执行比较简单,由当前shell本身来执行,例如echo, eval, exec, export, readonly, read, shift, wait和点(.)等;
-
外部命令的执行比较复杂,shell进程会fork一个子进程,父进程随后挂起,然后在子进程中exec加载外部文件,子进程返回后,父进程才继续执行。
-
从上面的区别可以看出,内建命令的性能要优于外部命令,因为它没有新建进程的开销。
-
使用help命令可以查看内建命令列表