在脚本中type可用于检查命令或函数是否存在,存在返回0,表示成功;不存在返回正值,表示不成功。
1
|
$ type foo > /dev/null 2>&1 || { echo >&2 "I require foo but it's not installed. Aborting." ; exit 1; } |
用途说明
type命令用来显示指定命令的类型。一个命令的类型可以是如下之一
- alias 别名
- keyword 关键字,Shell保留字
- function 函数,Shell函数
- builtin 内建命令,Shell内建命令
- file 文件,磁盘文件,外部命令
- unfound 没有找到
它是Linux系统的一种自省机制,知道了是那种类型,我们就可以针对性的获取帮助。比如内建命令可以用help命令来获取帮助,外部命令用man或者info来获取帮助。
常用参数
type命令的基本使用方式就是直接跟上命令名字。
type -a可以显示所有可能的类型,比如有些命令如pwd是shell内建命令,也可以是外部命令。
type -p只返回外部命令的信息,相当于which命令。
type -f只返回shell函数的信息。
type -t 只返回指定类型的信息。
使用示例
示例一 type自己是什么类型的命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
[root@new55 ~] # type -a type type is a shell builtin [root@new55 ~] # help type type : type [-afptP] name [name ...] For each NAME, indicate how it would be interpreted if used as a command name. If the -t option is used, ` type ' outputs a single word which is one of ` alias ', `keyword' , ` function ', `builtin' , ` file ' or `' , if NAME is an alias , shell reserved word, shell function , shell builtin , disk file , or unfound, respectively. If the -p flag is used, ` type ' either returns the name of the disk file that would be executed, or nothing if ` type -t NAME' would not return ` file '. If the -a flag is used, ` type ' displays all of the places that contain an executable named ` file '. This includes aliases, builtins, and functions, if and only if the -p flag is not also used. The -f flag suppresses shell function lookup. The -P flag forces a PATH search for each NAME, even if it is an alias , builtin , or function , and returns the name of the disk file that would be executed. typeset: typeset [-afFirtx] [-p] name[=value] ... Obsolete. See ` declare '. [root@new55 ~] # |
示例二 常见命令的类型
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
[root@new55 ~] # type -a cd cd is a shell builtin [root@new55 ~] # type -a pwd pwd is a shell builtin pwd is /bin/pwd [root@new55 ~] # type -a time time is a shell keyword time is /usr/bin/time [root@new55 ~] # type -a date date is /bin/date [root@new55 ~] # type -a which which is aliased to ` alias | /usr/bin/which -- tty -only -- read - alias --show-dot --show-tilde' which is /usr/bin/which [root@new55 ~] # type -a whereis whereis is /usr/bin/whereis [root@new55 ~] # type -a whatis whatis is /usr/bin/whatis [root@new55 ~] # type -a function function is a shell keyword [root@new55 ~] # type -a ls ls is aliased to ` ls --color= tty ' ls is /bin/ls [root@new55 ~] # type -a ll ll is aliased to ` ls -l --color= tty ' [root@new55 ~] # type -a echo echo is a shell builtin echo is /bin/echo [root@new55 ~] # type -a bulitin - bash : type : bulitin: not found [root@new55 ~] # type -a builtin builtin is a shell builtin [root@new55 ~] # type -a keyword - bash : type : keyword: not found [root@new55 ~] # type -a command command is a shell builtin [root@new55 ~] # type -a alias alias is a shell builtin [root@new55 ~] # type -a grep grep is /bin/grep |
到此这篇关于linux type命令用法实战教程的文章就介绍到这了,更多相关linux type命令内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://www.cnblogs.com/embedded-linux/p/6206052.html