根據我的測試,bash
非常滿意~
在$PATH
但/usr/bin/which
不是。有沒有關於這個的標準(像POSIX)?
實施例:
[STEP 100] # echo $BASH_VERSION
4.4.12(1)-release
[STEP 101] # echo $PATH
/root/bin:/usr/sbin:/usr/bin:/sbin:/bin
[STEP 102] # /usr/bin/which passh
/root/bin/passh
[STEP 103] # type passh
passh is /root/bin/passh
[STEP 104] #
[STEP 105] # PATH='~/bin':/usr/sbin:/usr/bin:/sbin:/bin
[STEP 106] # echo $PATH
~/bin:/usr/sbin:/usr/bin:/sbin:/bin
[STEP 107] # /usr/bin/which passh
[STEP 108] # hash -r
[STEP 109] # hash
hash: hash table empty
[STEP 110] # type passh
passh is /root/bin/passh
[STEP 111] #
正如我們所看到的,在步驟107中which
找不到任何passh
以上,但在步驟110中bash
仍然可以找到passh
後我清除哈希表(hash -r
)。
@whjm'bash'本身可以解釋PATH'的'值文字波浪線作爲'$ HOME'一條捷徑,但其他程序(如'which')不會。 – chepner
對不起@whjm刪除'hash'將不起作用。讓我編輯它。 – anubhava
沒有必要爲一個標準:你沒有一個目錄,它的名字,從字面上看,是'〜'。 'PATH'對'bash'不是特別的;它是由一個使用'execlp'或'execvp'執行新的程序的任何程序中使用,因此沒有(也不應該)瞭解具體的殼快捷方式。 – chepner