将PWD的一部分设置为提示并保持变量更新

时间:2014-01-01 08:30:19

标签: linux environment-variables prompt csh tcsh

我正在使用tcsh,而我正试图设置PWD的一部分始终出现在提示符中(所以我将始终知道我在哪个“父”目录中。)

我设法通过以下方式提取提示所需的部分,并且工作正常(我称之为MyTreePath):

set MyTreePath=`echo $PWD | awk '{... print whichTree}'`

我已将上面的代码添加到.tcshrc,我已将%$MyTreePath添加到set prompt的{​​{1}}行。

问题是,一旦打开shell,.tcshrc就不会改变,即使我要走完一条完全不同的道路。

如何更新提示中显示的变量?

1 个答案:

答案 0 :(得分:3)

使用神奇的cwdcmd别名!它用于定义每次cwd更改时执行的命令。在您的情况下,您需要更新您的变量。

从联系手册:

  

beepcmd,cwdcmd,periodic,precmd,postcmd和jobcmd Special   别名可以分别设置为执行命令时   当工作目录发生变化时,shell想要响铃,   每个提示之前的每个tperiod分钟,在每个命令到达之前   执行后,执行每个命令后,以及何时启动作业   或被带到前台。

这是一个简单的例子:

alias cwdcmd 'set FOO=`pwd`'
set prompt='%$FOO >>>      '

现场测试:

cd /
/ >>>      cd dev
/dev >>>

所以剩下的就是用你自己的命令替换上面别名中的pwd

有关更多信息和其他魔术别名,请参阅here

相关问题