系统相关
首页 > 系统相关> > linux-将PWD的一部分设置为提示并保持变量更新

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

作者:互联网

我正在使用tcsh,并且试图将PWD的一部分设置为始终显示在提示符下(这样,我将始终知道我在哪个“父”目录中).

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

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

我已将以上代码添加到.tcshrc中,并将%$MyTreePath添加到了.tcshrc中的设置提示行中.

问题是,即使打开了完全不同的路径,一旦打开外壳,MyTreePath也不会更改.

如何使出现在提示中的变量保持更新?

解决方法:

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

从联机帮助页:

The beepcmd, cwdcmd, periodic, precmd, postcmd, and jobcmd Special
aliases can be set, respectively, to execute commands when the
shell wants to ring the bell, when the working directory changes,
every tperiod minutes, before each prompt, before each command gets
executed, after each command gets executed, and when a job is started
or is brought into the foreground.

这是一个简单的示例:

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

现场测试:

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

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

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

标签:csh,environment-variables,prompt,tcsh,linux
来源: https://codeday.me/bug/20191122/2058703.html