我在擺弄type
和which
命令時發現了一些奇怪的事情。
type
which
要么返迴路徑,要么表示命令是內建的 Bash
exit
。type
奇怪的是,type echo
正如我所料,echo 是內建的。
但which echo
將 /bin/echo 作為 echo 可執行檔的路徑。對於任何其他內建命令似乎都不會發生這種情況。
我想知道兩者之間有什麼不同,Bash 選擇在腳本和命令列中執行哪一個,以及這兩個迴聲背後的故事是什麼。
我的系統是Ubuntu桌面12.04
答案1
有一個內建函數echo
和一個命令echo
。用於type -a echo
查看所有這些。
因為type
它本身就是一個 shell 內建函數,所以它能夠了解其他內建函數。
並且which
只是一個通常的命令。因此它不知道您正在使用哪個 shell,而只告訴您磁碟上的命令。
通常type
是正確的命令來告訴您如果在 shell 中輸入某個單字會發生什麼。