我正在使用tcsh,而我正试图设置PWD的一部分始终出现在提示符中(所以我将始终知道我在哪个“父”目录中。)
我设法通过以下方式提取提示所需的部分,并且工作正常(我称之为MyTreePath
):
set MyTreePath=`echo $PWD | awk '{... print whichTree}'`
我已将上面的代码添加到.tcshrc
,我已将%$MyTreePath
添加到set prompt
的{{1}}行。
问题是,一旦打开shell,.tcshrc
就不会改变,即使我要走完一条完全不同的道路。
如何更新提示中显示的变量?
答案 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。