為什麼當我使用 ssh 時無法讀取“export foo=1”?

為什麼當我使用 ssh 時無法讀取“export foo=1”?

我試圖在 ssh 命令中明確設定遠端環境變數:

ssh worker-2 "export OPENBLAS_NUM_THREADS=1; echo $OPENBLAS_NUM_THREADS"

奇怪的是,這僅打印一個空行,但是當我在本地運行相同的命令時,它會正確打印1.

既然我明確設定了變量,為什麼它不能遠端工作?

答案1

$OPENBLAS_NUM_THREADSbash在發送到遠端電腦之前正在本地進行評估。

您需要轉義$

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'

相關內容