这可能是一个愚蠢的问题,但我不知道从哪里开始。在大学,我们有一个超级计算机集群安排,其中有两个并行运行的文件系统访问不同的集群。它们是独立的,但使用相同的登录配置文件,即我可以使用相同的凭据进行 ssh 登录,它们使用相同的bashrc
文件等。
我的工作流程(无论好坏)要求我设置一个环境变量,指定找到所有代码和存储输出的路径。这根据我登录的集群而有所不同(因为文件系统不同)。问题是,如果我设置这个环境变量,bashrc
它在两个系统上都是相同的。
有没有办法设置这个环境变量,以便它在我登录的服务器上获得不同的值?
显然我可以手动完成此操作,但我总是忘记,每次最终都会花费我一天或更多的模拟时间。
最终我认为目的是将所有内容迁移到较新的文件系统,但目前,如果我想访问所有资源,我需要处理单独的文件系统。
答案1
您的.bashrc
文件可以包含if
语句。你可以做类似的事情
if [ "${HOSTNAME}" == "HostA" ]
then
MYVAR=x
else
MYVAR=y
fi
另一种方法可能是通过执行绑定安装(甚至符号链接)来标准化文件系统,但这种方法实际上取决于主要细节,例如它们的不同程度。