将csh路径设置为不断变化的环境变量

时间:2014-12-08 18:53:48

标签: shell csh

有没有办法将$PATH中的csh设置为我可以更改的另一个环境变量?

例如,假设我将$APPDIR放在我的路径中:

setenv APPDIR "/home/user/version1/bin"

但后来我将$APPDIR更改为其他内容:

setenv APPDIR "/home/user/version2/bin"

有没有办法将$APPDIR放在$PATH 而不扩展变量,以便在我更改$APPDIR时,我不必还更新$PATH

1 个答案:

答案 0 :(得分:0)

没有办法做到这一点。您将字符串分配给$PATH,无法动态插入将在获取值时进行评估的内容。

事实上,这样做可能被视为一个安全问题,这几乎是最近的bash" shell shock"漏洞就是这样; - )

您可以做的是cshrctcshrc

if ( ! $?APPDIR ) setenv APPDIR 'default-appdir'
setenv PATH "${PATH}:${APPDIR}"

只有在$APPDIR为空时,才会将default-appdir设置为$APPDIR;如果您现在更改setenv APPDIR new-appdir 的值:

source ~/.tcshrc

并使用以下命令重新加载配置

$PATH

{{1}}的值将会更新。