ログインしたサーバー/ファイルシステムに基づいて環境変数をどのように設定しますか?

ログインしたサーバー/ファイルシステムに基づいて環境変数をどのように設定しますか?

愚かな質問かもしれませんが、どこから始めるべきかわかりません。大学には、異なるクラスタにアクセスする2つのファイルシステムが並列に実行されるスーパーコンピュータクラスタアレイがあります。彼らは独立していますが、同じログインプロファイルを使用しています。つまり、SSHログインに同じ資格情報を使用でき、同じbashrcファイルなどを使用します。

私のワークフローでは、(良いか悪い)すべてのコードが見つかり、出力が保存されるパスを指定する環境変数を設定する必要があります。これは私がログインしているクラスタによって異なります(ファイルシステムが異なるため)。問題は、この環境変数を設定すると、bashrc両方のシステムで同じであることです。

私がログインしたサーバーから別の値を取得するようにこの環境変数を設定する方法はありますか?

明らかにこれを手動で実行することもできますが、常に忘れてしまい、毎回シミュレーション時間が1日以上かかります。

結局のところ、すべてを新しいファイルシステムに移行しようとしているようですが、今はすべてのリソースにアクセスするために別々のファイルシステムを処理する必要があります。

答え1

ファイルにはステートメントを.bashrc含めることができますif。次のようなことができます

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

別のアプローチは、バインドマウント(またはシンボリックリンク)を実行してファイルシステムを標準化することですが、このアプローチは実際には違いなどの主な詳細によって異なります。

関連情報