Bash
如何修整 CWD,顯示在命令提示符中
要知道,我在控制台中的 CWD 是什麼,我在 ~/.bash_profile 中添加了以下內容:
export PS1='$(pwd)$ '
因此,
pwd
結果顯示在$
符號之前。這個真好。但是當我去一個名字很長的目錄時:
/var/www/vhosts/beta.sitename.co.uk/httpdocs/sites/beta.sitename.co.uk/modules/bundles
在命令提示符下,我看到:
.co.uk/modules/bundles$ sitename.co.uk/httpdocs/sites/beta.sitename.
這使得 shell 幾乎無法使用。是否可以修剪它,只保留最後一部分或目錄名稱?說,30個字元。
或者,也許更好的主意是
pwd
在每個cd
命令之後列印,這樣我就可以知道我在哪裡?這可以使用別名來完成。
在我的
.bashrc
中,我的 PS1 被配置為顯示我目前工作目錄的最後一個組件。這可以使用\W
(PS1 允許一些特殊序列以及變數)來完成。在你的情況下,那將是:$ export PS1='\W$'
更多這些序列可以在
man bash
, atPrompting
, see here中找到。您也可以\w
使用完整路徑,但$HOME
縮寫為~
(這會縮短您的大部分路徑)。現在,如果你真的想設置字元限制,你可以使用…$ export PS1='$(pwd | tail -c30)$' # Limited to 30 characters $ export PS1='...$(pwd | tail -c30)$'
……或者有點bashism:
$ export PS1='${PWD: -30}$' $ export PS1='${PWD:(-30)}$' $ export PS1='...${PWD: -30}$' $ export PS1='...${PWD:(-30)}$'