2009-12-01 48 views
2

在linux下,我需要一次我登录到AccuRev的,该PS1更改为以下:有没有accurev在登录时读取的文件?

想我的工作空间放置在路径~/myfiles/accurev/ws/myworkspace

<username>@<machineName> : ACCUREV > 

所以,当我比如cd到~/myfiles/accurev/ws/myworkspace/myproject1/org/daz/, 在PS1是:

<username>@<machineName> : ACCUREV/myproject1/org/daz > 
+0

AccuRev有许多env变量[第6页CLI指南]。虽然,外壳PS1与AccuRev无关。你能澄清你想要做什么吗? – 2009-12-01 17:20:16

+0

我想改变PS1的颜色,我该怎么做? – 2009-12-01 20:20:51

回答

0

您可以使用数据accurev info拉这一关。但是,在每次即时加载时执行此操作可能会令人讨厌,因为该命令需要几秒钟才能完成。你也许可以通过检查你的PWD是否已经改变并且只有在改变目录时才运行它。

例如,这里有一个办法让你的PWD相对的路径AccuRev的信息的“顶”:

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,特别是底部PS1定义的https://github.com/matschaffer/profile/blob/master/environment.conf。这应该给你一些想法。

0

你应该用下面的命令输入您的工作空间:

accurev start -w myworkspace 

然后在你的.bashrc添加如下内容:

if [ "${ACCUREV_TOPDIR}" != "" ] 
then 
    PS1='[\[email protected]\h `pwd | sed -e "s#${ACCUREV_TOPDIR}#ACCUREV#"`]\$ ' 
else 
    PS1='[\[email protected]\h \W]\$ ' 
fi 
export PS1 

我个人更喜欢看到工作区以及类似:

PS1='[\[email protected]\h `pwd | sed -e "s#${ACCUREV_TOPDIR}#WS(${ACCUREV_WSPACE})#"`]\$ ' 
相关问题