如何根据我登录的服务器/文件系统设置环境变量?

如何根据我登录的服务器/文件系统设置环境变量?

这可能是一个愚蠢的问题,但我不知道从哪里开始。在大学,我们有一个超级计算机集群安排,其中有两个并行运行的文件系统访问不同的集群。它们是独立的,但使用相同的登录配置文件,即我可以使用相同的凭据进行 ssh 登录,它们使用相同的bashrc文件等。

我的工作流程(无论好坏)要求我设置一个环境变量,指定找到所有代码和存储输出的路径。这根据我登录的集群而有所不同(因为文件系统不同)。问题是,如果我设置这个环境变量,bashrc它在两个系统上都是相同的。

有没有办法设置这个环境变量,以便它在我登录的服务器上获得不同的值?

显然我可以手动完成此操作,但我总是忘记,每次最终都会花费我一天或更多的模拟时间。

最终我认为目的是将所有内容迁移到较新的文件系统,但目前,如果我想访问所有资源,我需要处理单独的文件系统。

答案1

您的.bashrc文件可以包含if语句。你可以做类似的事情

if [ "${HOSTNAME}" == "HostA" ]
then
  MYVAR=x
else
  MYVAR=y
fi

另一种方法可能是通过执行绑定安装(甚至符号链接)来标准化文件系统,但这种方法实际上取决于主要细节,例如它们的不同程度。

相关内容