【发布时间】:2013-04-25 21:49:14
【问题描述】:
我正在我的主机上导出一个变量,例如:
export TOPICS="A B C"
然后,我想通过 ssh 在远程机器上使用 TOPICS 变量,例如:
ssh user@remoteHost <<EOF
for word in $TOPICS; do
./modify.sh $word
done
exit
EOF
一旦我 ssh 到远程主机上,就无法再看到 TOPICS 中的值。有没有办法通过 ssh 命令导出变量?我尝试在 EOF 前后加上单引号,以及在
【问题讨论】:
-
$TOPICS正在使用中。除非您在EOF周围加上引号,否则 here-doc 中的变量会在本地展开。问题是$word。这会在本地扩展,但正在远程设置。 -
理论上是否应该在 EOF 的第二次出现周围用单引号解决 $word 的问题?
-
如果你使用
<<'EOF',它将修复$word,但会破坏$TOPICS。 -
在远程主机上放一个你想做的脚本,然后
ssh user@remotehost "./scriptname $TOPICS"。 -
或者在
$word前面加一个反斜杠\