Linux 将PWD的一部分设置为提示并保持变量更新
我使用的是tcsh,我试图将PWD的一部分设置为始终显示在提示符中(这样我将始终知道我在哪个“parent”目录中) 我成功地用以下方式提取了提示符所需的部分,它工作得很好(我称之为Linux 将PWD的一部分设置为提示并保持变量更新,linux,environment-variables,prompt,csh,tcsh,Linux,Environment Variables,Prompt,Csh,Tcsh,我使用的是tcsh,我试图将PWD的一部分设置为始终显示在提示符中(这样我将始终知道我在哪个“parent”目录中) 我成功地用以下方式提取了提示符所需的部分,它工作得很好(我称之为MyTreePath): 我已将上述代码添加到我的.tcshrc中,并已将%$MyTreePath添加到中的设置提示行中 问题是,一旦打开shell,MyTreePath就不会改变,即使我要走的是一条完全不同的路径 如何更新提示中出现的变量?使用神奇的cwdcmd别名!它用于定义每次cwd更改时执行的命令。在您的情况
MyTreePath
):
我已将上述代码添加到我的.tcshrc
中,并已将%$MyTreePath
添加到中的设置提示
行中
问题是,一旦打开shell,MyTreePath
就不会改变,即使我要走的是一条完全不同的路径
如何更新提示中出现的变量?使用神奇的cwdcmd
别名!它用于定义每次cwd更改时执行的命令。在您的情况下,您需要更新变量
从手册页:
beepcmd、cwdcmd、periodic、precmd、postcmd和jobcmd特殊
可以分别设置别名,以便在
当工作目录发生变化时,shell想按铃,
每个t周期分钟,在每个提示之前,在每个命令执行之前
在每个命令执行后以及作业启动时执行
或者被带到前台
下面是一个简单的例子:
alias cwdcmd 'set FOO=`pwd`'
set prompt='%$FOO >>> '
现场测试:
cd /
/ >>> cd dev
/dev >>>
所以剩下的就是用您自己的命令替换上面别名中的pwd
有关更多信息和其他魔法别名,请参阅。不要使用csh
或tcsh
;阅读并切换到更好的shell(或至少bash
),请务必使用tcsh
!作为一个交互式shell,它非常棒!是的,这篇著名的“被认为有害”的文章中的所有内容都是真实的,但大多适用于脚本。通常,我完全避免使用shell脚本。国际海事组织,“壳牌脚本被认为是有害的”。交互式tcsh被认为很棒。请同时显示您的设置提示
行
cd /
/ >>> cd dev
/dev >>>