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



我正在使用tcsh,并且我正在尝试将PWD的一部分设置为始终出现在提示符中(因此我将始终知道我在哪个"父"目录中)。

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

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

我已经将上面的代码添加到我的.tcshrc中,并在 .tcshrc 中向我的set prompt行添加了%$MyTreePath

问题是,一旦打开外壳,MyTreePath就不会改变,即使我要走一条完全不同的路。

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

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

从手册页:

哔声、cwdcmd、周期性、前置、后 cmd 和 jobcmd 特别版 可以分别设置别名以在 壳牌想敲钟,当工作目录改变时, 每 tperiod 分钟,在每个提示之前,在每个命令得到之前 执行、执行每个命令后以及启动作业时 或被带到前台。

下面是一个快速示例:

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

现场测试:

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

因此,剩下的就是将上面别名中的pwd替换为您自己的命令。

有关详细信息和其他魔术别名,请参阅此处。

最新更新