【问题标题】:Get local variable from ssh call in shell从 shell 中的 ssh 调用获取局部变量
【发布时间】:2014-04-14 18:00:53
【问题描述】:

我有一个名为global.sh 的脚本,它在远程机器上复制一个名为my_local_script.sh 的shell 脚本。

scp my_local_script.sh host@user_a:remote_directory

然后我连接到那个 ssh 主机并像这样执行它

ssh host@user "
                cd remote_directory
                ./my_local_script.sh
              "

到目前为止一切都很好,一切都很好,问题是我想在my_local_script.shglobal.sh 中获取一个局部变量。我试过这样做

ssh host@user "
                cd remote_directory
                my_arg=$(./my_local_script.sh)
              "

但这不起作用,甚至我的本地脚本的调用也无法正常工作。有什么建议可以解决这个问题。

PS:将变量复制到临时文件不是一种选择。如果可能的话,我正在为此寻找一个 shell 解决方案。

【问题讨论】:

    标签: linux bash shell ssh


    【解决方案1】:

    您正在使用命令替换,这是必要的,但它在错误的位置。你应该把它放在整个 SSH 命令周围:

    my_var=$(ssh host@user "cd remote_directory; ./my_local_script.sh")
    

    这是假设您要捕获的变量正在由 my_local_script 输出,例如由echoprintf

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多