一般情況下,type命令被用於判斷另外一個命令是否是內置命令,但是它實際上有更多的用法。
1.判斷一個名字當前是否是alias、keyword、function、builtin、file或者什么都不是:
type ls 的輸出是 ls 是 `ls --color=auto' 的別名
type if 的輸出是 if 是 shell 關鍵字
type type 的輸出是 type 是 shell 內嵌
type frydsh 的輸出是 bash: type: frydsh: 未找到
2.判斷一個名字當前是否是alias、keyword、function、builtin、file或者什么都不是的另一種方法(適用於腳本編程):
type -t ls 的輸出是 alias
type -t if 的輸出是 keyword
type -t type 的輸出是 builtin
type -t gedit 的輸出是 file
type -t frydsh 沒有輸出
3.顯示一個名字的所有可能:
type -a kill 的輸出是 kill 是 shell 內嵌 和 kill 是 /bin/kill
type -at kill 的輸出是 builtin 和 file
4.查看一個命令的執行路徑(如果它是外部命令的話):
type -p gedit 的輸出是 /usr/bin/gedit
type -p kill 沒有輸出(因為kill是內置命令)
5.強制搜索外部命令:
type -P kill 的輸出是 /bin/kill