
ssh コマンドでリモート環境変数を明示的に設定しようとしています:
ssh worker-2 "export OPENBLAS_NUM_THREADS=1; echo $OPENBLAS_NUM_THREADS"
不思議なことに、これは空白行だけを出力しますが、同じコマンドをローカルで実行すると、正しく出力されます1
。
変数を明示的に設定しているのに、リモートで動作しないのはなぜですか?
答え1
$OPENBLAS_NUM_THREADS
bash
リモート マシンに送信される前に、ローカルで評価されます。
次のいずれかをエスケープする必要があります$
:
ssh worker-2 "export OPENBLAS_NUM_THREADS=1; echo \$OPENBLAS_NUM_THREADS"
または、bash 変数の評価を禁止する一重引用符を使用します。
ssh worker-2 'export OPENBLAS_NUM_THREADS=1; echo $OPENBLAS_NUM_THREADS'