
Estou tentando definir explicitamente uma variável de ambiente remoto em um comando ssh:
ssh worker-2 "export OPENBLAS_NUM_THREADS=1; echo $OPENBLAS_NUM_THREADS"
Estranhamente, isso imprime apenas uma linha em branco, mas quando executo o mesmo comando localmente, ele imprime corretamente 1
.
Já que estou definindo a variável explicitamente, por que ela não funciona remotamente?
Responder1
$OPENBLAS_NUM_THREADS
está sendo avaliado localmente bash
antes de ser enviado para sua máquina remota.
Você precisa escapar de $
:
ssh worker-2 "export OPENBLAS_NUM_THREADS=1; echo \$OPENBLAS_NUM_THREADS"
ou use aspas simples, que inibem a avaliação da variável bash:
ssh worker-2 'export OPENBLAS_NUM_THREADS=1; echo $OPENBLAS_NUM_THREADS'