
我試圖在 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'