【问题标题】:Prevent local shell from replacing variables when sending ssh commands [duplicate]发送 ssh 命令时防止本地 shell 替换变量 [重复]
【发布时间】:2017-05-26 12:58:28
【问题描述】:

我尝试向远程服务器发送 SSH 命令。该命令可以直接在 shell (bash) 中发出,也可以从 Makefile 发出:

ssh me@server "rsync -avz /my/stuff $SCRATCH/my/stuff"

$SCRATCH 是远程服务器上的环境变量,并在那里正确设置。但不幸的是,在发送 SSH 命令之前,我的本地系统会尝试将 $SCRATCH 替换为本地环境变量。

如何防止这种情况发生?

【问题讨论】:

  • 使用单引号而不是双引号。

标签: linux bash shell ssh


【解决方案1】:

使用反斜杠转义$ 符号以防止局部变量扩展:

ssh me@server "rsync -avz /my/stuff \$SCRATCH/my/stuff"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-23
    • 2013-06-03
    • 2014-01-09
    • 2014-09-20
    相关资源
    最近更新 更多