我的 中有以下内容.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:
答案1
如果你再深入几层,它就会开始截断
$ 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
或从源代码),那么您需要确保您已通过命令更改了您的用户 shell,chsh
以便您的运行bash
窗口使用新版本bash
而不是旧的内置版本。
答案2
这对我有用!
使用自制程序安装 Bash 4
brew install bash
将新 shell 添加到合法 shell 列表中
sudo bash -c "echo /usr/local/bin/bash >> /private/etc/shells"
更改用户的 shell
chsh -s /usr/local/bin/bash
重新启动terminal.app(新窗口也可以)
exec bash
大声喊出GitHub 要点提供信息的作者!