shell的命令有三种,分别是 内建命令、外部命令 和shell函数(用shell编写的的函数) 。内建命令在shell启动的时候,这些内置的命令都已经加载到了内存中,执行的速度很快,因为不用开启新的进程。比如cd, echo等。外部的命令是在shell执行的的时候,运行的外部命令,会开启一个新的进程。他们的共同点是都可以返回一个值, 可以使用$?获得到。
使用shell内置的命令type,可以查看命令的类型。
# 可以看到type 本身就是个内建(builtin)的命令
type type
type is a shell builtin
type 有两个常用的参数
参数 | 含义 |
---|---|
-t | 仅仅输出命令的类型 |
-a | 显示命令的路径 |
type -t bash
file
type -t cd
builtin
type -a cd
cd is a shell builtin
cd is /usr/bin/cd
type -t ping
file
shell外部命令的执行
shell外部命令执行是新建立一个进程,这个进程是shell的一个副本。所以在写shell脚本的时候,需要设置好一些环境变量,方便子进程的使用。常用的用$PATH变量。执行后会有个返回值$? 。 0 表示成功, 其他值表示不同的错误。