在linux中,我需要一旦登录accurev,PS1就会改为:
假设我的工作区位于路径~/myfiles/accurev/ws/myworkspace
<username>@<machineName> : ACCUREV >
所以,当我以cd为~/myfiles/accurev/ws/myworkspace/myproject1/org/daz/
时,
PS1是:
<username>@<machineName> : ACCUREV/myproject1/org/daz >
答案 0 :(得分:0)
您可以使用accurev info
中的数据将其关闭。但是在每个提示加载时执行它可能会很烦人,因为命令需要几秒钟才能完成。您可以通过检查您的PWD是否已更改并在更改目录时仅运行它来调节。
例如,这里有一种方法可以获得PWD相对于accurev信息'Top'的路径:
pwd | cut -b`accurev info 2>/dev/null | grep Top | awk '{print $2}' | wc -c | awk '{print $1}'`- 2>/dev/null
您可以将其放入PS1,但随后每次提示都需要1-2秒。如果您只想在目录更改时执行此操作,则可以使用PROMPT_COMMAND进行工作,但仅限于PWD != OLDPWD
。
因此。可行?是。值得?很难说。
哦,至于你的颜色。查看https://github.com/matschaffer/profile,特别是https://github.com/matschaffer/profile/blob/master/environment.conf,了解底部的PS1定义。这应该会给你一些想法。
答案 1 :(得分:0)
您应该使用以下命令输入工作区:
accurev start -w myworkspace
然后在.bashrc中添加以下内容:
if [ "${ACCUREV_TOPDIR}" != "" ]
then
PS1='[\u@\h `pwd | sed -e "s#${ACCUREV_TOPDIR}#ACCUREV#"`]\$ '
else
PS1='[\u@\h \W]\$ '
fi
export PS1
我个人更喜欢看到工作区:
PS1='[\u@\h `pwd | sed -e "s#${ACCUREV_TOPDIR}#WS(${ACCUREV_WSPACE})#"`]\$ '