代码之家  ›  专栏  ›  技术社区  ›  Austin

sshing时传递bash变量

  •  1
  • Austin  · 技术社区  · 7 年前

    多人运行需要端口转发的应用程序时,我遇到了一些问题。我想生成一个随机端口号,在传递随机端口号的同时将ssh发送到应用服务器,然后 sed 在几个不同的脚本中用这个端口替换默认端口。

    那么,有没有任何方法可以通过ssh传递bash变量,或者有更好的方法来实现这一点呢?

    1 回复  |  直到 7 年前
        1
  •  1
  •   jeremysprofile Subin George    7 年前

    如果你知道你想用变量做什么,你可以把它传递给远程主机并在同一行上运行命令:

    ssh name@host "sed -i -e \"s/$myrandnumber/22/g\" file1 file2 file3"
    

    $myvar 将在 ssh ING的发生,意味着它将是你设定在原始机器上的值,而不是遥控器。您可以将其设置为远程计算机上的变量:

    ssh name@host "export remotevar=$myrandnumber; bash -i" 
    

    但它只能在当前会话中使用。如果您只想将变量存储到将来的某个日期,那么您最好的选择是写入一个稍后获得源代码的文件,即,

    ssh name@host "echo \"myvar=$myrandnumber\" >> /etc/environment"