我正在尝试在 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'