概述
type
命令可以用来查看 shell 命令的类型,即它是内置命令还是外部命令。命令类型有如下几种:
alias
:表示是别名。keyword
:关键字,shell 保留字。function
:函数,shell 函数。builtin
:内置命令。file
:文件,外部命令。
语法
type
命令的语法如下:
type [选项] [参数]
常见的选项有:
选项 | 说明 |
---|---|
-t | 判断给定参数的命令类型。如果输出 file 、alias 、builtin 则分别表示 外部命令、命令别名、内置命令。 |
-p | 如果给出的参数是外部命令,则显示其绝对路径。 |
-a | 显示所有可能的类型,包括别名、内置命令、函数等。 |
-f | 只返回shell函数的信息。 |
参数是给定的一个单词,通常是待判断的命令名称。
使用
查看命令类型
查看指定单词的类型,格式如下:
type 命令名称
它们的输出情况如下:
- 如果该命令是别名,则会输出其本来命令。
- 如果该命令是关键字,则会提示它是一个 shell 关键字。
- 如果该命令是内置命令,则会提示它是一个 shell 内置命令。
- 如果该命令是外部命令,则会输出它的绝对路径。
- 如果该命令是未知单词,则会提示
not found
表示未找到。
具体查看命令类型
上面的 type
命令只是对参数是个什么命令做了说明,需要我们根据它打印的结果判断它到底是什么类型的。通常在 shell 脚本中,我们加上 -t
选项来进行字符串比较判断它的类型。如下:
type -t 命令名称
它们的输出说明如下:
alias
表示该命令是别名。keyword
表示该命令是关键字。builtin
表示该命令是内置命令。file
表示该命令是外部命令。
显示外部命令的绝对路径
可以只显示外部命令的绝对路径,格式如下:
type -p 外部命令名称
显示指定命令的所有信息
格式如下:
type -a 命令名称
可以看到 ls
命令既显示了别名,也显示了其绝对路径。