Bash
PROMPT_DIRTRIM 不工作
我有以下內容
.bash_profile
:PROMPT_DIRTRIM=3 export PS1='$ \u in \w: '
但是,當我在目錄中深入導航時,路徑不會縮短。這是提示顯示的內容:
$ myname in ~/Desktop/level3/level4/level5:
我嘗試重新啟動 iTerm,但沒有幫助。當我執行時
bash --version
,我得到以下輸出:GNU bash, version 4.3.42(1)-release (x86_64-apple-darwin15.4.0) Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software; you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
我哪裡錯了?
編輯更深入:
$ myname in ~/Desktop/level3/level4/level5/level6/level7/level8/level9:
如果你再深入幾級,它就會開始截斷
$ sweh in ~: cd D1 $ sweh in ~/D1: cd D2 $ sweh in ~/D1/D2: cd D3 $ sweh in ~/D1/D2/D3: cd D4 $ sweh in ~/D1/D2/D3/D4: cd D5 $ sweh in ~/.../D3/D4/D5: cd D6 $ sweh in ~/.../D4/D5/D6:
在 $HOME 之外,它似乎更早被截斷:
$ sweh in ~: cd /usr/local/share/locale/ $ sweh in .../local/share/locale:
您可以看到它在這兩種情況下都希望保留 3 級目錄,但是在 $HOME 中它以 ~/ 為前綴,並且它足夠聰明地知道 4 個目錄與 3 個目錄,並且
...
在這種情況下並不重要。MacOS 附帶的本機版本
bash
還不足以理解這一點。如果您已經安裝了較新的版本(例如通過brew
或從原始碼),那麼您需要確保您已經通過chsh
命令更改了您的使用者 shell,以便您的執行bash
視窗使用新版本bash
而不是舊的內置版本。