
Ich versuche, eine Remote-Umgebungsvariable explizit in einem SSH-Befehl festzulegen:
ssh worker-2 "export OPENBLAS_NUM_THREADS=1; echo $OPENBLAS_NUM_THREADS"
Seltsamerweise wird dadurch nur eine leere Zeile gedruckt, aber wenn ich denselben Befehl lokal ausführe, wird er korrekt gedruckt 1
.
Da ich die Variable explizit festlege, warum funktioniert es dann nicht remote?
Antwort1
$OPENBLAS_NUM_THREADS
wird lokal ausgewertet, bash
bevor es an Ihren Remotecomputer gesendet wird.
Sie müssen entweder Folgendes escapen $
:
ssh worker-2 "export OPENBLAS_NUM_THREADS=1; echo \$OPENBLAS_NUM_THREADS"
oder verwenden Sie einfache Anführungszeichen, die die Auswertung der Bash-Variablen verhindern:
ssh worker-2 'export OPENBLAS_NUM_THREADS=1; echo $OPENBLAS_NUM_THREADS'