我修改了 ~/app-root/data/.bash_profile,在其中添加了一行设置 PS1 环境变量的内容,但在保存更改、注销并再次登录(通过 SSH)后,我仍然得到相同的默认提示符,即“[\H \W]>”。由于我确实可以访问我在修改后的 .bash_profile 中定义的别名,因此 shell 正在读取我的更改,因此我认为在读取配置文件后必须覆盖 PS1 变量。
以某种方式相关,为什么在 PS1 值中使用 \W 或 \w 时 $HOME 没有被缩写?
答案1
通过实验,我认为可以肯定地说,目前,OpenShift 软件在读取您的 .bash_profile 后会覆盖“常见的可疑项”(例如 PATH、PS1、HOME)。为了自定义您的提示(以及任何其他环境设置),您需要手动执行 shell 脚本(例如,在您登录后立即执行)。因此,我的解决方案是:
- 在 $OPENSHIFT_DATA_DIR 中创建一个 shell 脚本(例如 fixShell.sh),并包含所有更改:
export HOME="${HOME%/}" export PS1="\w > " export TMOUT=3600 unset TMOUT
- 每次手动执行上述脚本时都会打印提醒,因此将 .bash_profile 更改为回显彩色提醒:
COL_BLUE="\x1b[34;01m" COL_RESET="\x1b[39;49;00m" echo echo -e $COL_BLUE"COMMAND TO EXECUTE FOR PROPER CONFIGURATION OF ENVIRONMENT:"$COL_RESET echo echo "source app-root/data/fixShell.sh"
默认提示无法正确缩写主目录的原因是 HOME 变量包含尾部斜杠(“/”),一旦删除,提示中便可正常工作。巧合的是,所有与 $OPENSHIFT_* 目录相关的变量中都有尾部斜杠。