type
顯示指定命令的類型。
概要
1 type [-afptP] name [name ...]
主要用途
- 顯示要查找的命令的信息。
- 控制查找範圍和行爲。
- 顯示要查找的命令優先級最高的類型。
選項
1-a:在環境變量PATH中查找並顯示所有包含name的可執行文件路徑;當'-p'選項沒有同時給出時,如果在別名、關鍵字,函數,內建的信息中存在name,則一併顯示。
2-f:排除對shell函數的查找。
3-p:如果name在執行'type -t name'返回的不是'file',那麼什麼也不返回;否則會在環境變量PATH中查找並返回可執行文件路徑。
4-P:即使要查找的name是別名、內建、函數中的一個,仍然會在環境變量PATH中查找並返回可執行文件路徑。
5-t:根據name的類型返回一個單詞(別名,關鍵字,函數,內建,文件),否則返回空值。
參數
name:要查找的命令,可以爲多個。
返回值
當指定的命令可以找到時返回成功,如果有沒找到的返回失敗。
例子
1接下來要用到的例子假設'~/.bashrc'文件定義了以下的內容:
2
3alias ls='ls --color=auto'
4mybash(){ vim ~/.bashrc; }
5
6而且執行環境裏沒有使用enable禁用內建命令。
1type -a mybash
2# 輸出
3mybash is a function
4mybash ()
5{
6 vim ~/.bashrc
7}
8
9type -a -f mybash
10# 輸出(因爲排除了函數,所以報錯)
11bash: type: mybash: not found
12
13type -a -p mybash
14# 輸出爲空(因爲排除了函數,所以什麼也不返回)
15
16type -a ls
17# 輸出
18ls is aliased to `ls --color=suto'
19ls is /usr/bin/ls
20ls is /bin/ls
21
22type -a -p ls
23# 輸出
24/usr/bin/ls
25/bin/ls
1# '-f'不會影響'-P'的範圍,'-f'不建議和'-p'使用。
2# 注意:printf同時是內建命令以及可執行文件(GNU coreutils),優先作爲內建處理。
3
4type -p printf
5# 輸出爲空
6
7type -P printf
8# 輸出
9/usr/bin/printf
10/bin/printf
1# 如果有多個類型,那麼輸出優先級最高的類型。
2
3type -t ls
4# 輸出
5alias
6
7type -t for
8# 輸出(bash關鍵字)
9keyword
10
11type -t mybash
12# 輸出
13function
14
15type -t -f mybash
16# 輸出空值
17
18type -t printf
19# 輸出(bash內建優先級高)
20builtin
21
22type -t chmod
23# 輸出
24file
注意
-
該命令是bash內建命令,相關的幫助信息請查看
help
命令。 -
命令優先級問題請查看
builtin
命令。
來源:https://github.com/jaywcjlove/linux-command
最後修改於: Wednesday, January 31, 2024
版權申明:
- 未標註來源的內容皆為原創,未經授權請勿轉載(因轉載後排版往往錯亂、內容不可控、無法持續更新等);
- 非營利為目的,演繹本博客任何內容,請以'原文出處'或者'參考鏈接'等方式給出本站相關網頁地址(方便讀者)。