【问题标题】:exported variable to be used on remote server要在远程服务器上使用的导出变量
【发布时间】: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 的问题?
  • 如果你使用&lt;&lt;'EOF',它将修复$word,但会破坏$TOPICS
  • 在远程主机上放一个你想做的脚本,然后ssh user@remotehost "./scriptname $TOPICS"
  • 或者在$word前面加一个反斜杠\

标签: bash unix ssh


【解决方案1】:

通过在 $word 前面添加 '\' n 脚本可以正确执行,感谢@Adrian Pronk

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    相关资源
    最近更新 更多