【问题标题】:how to do ssh from the bash script如何从 bash 脚本执行 ssh
【发布时间】:2020-03-27 23:53:55
【问题描述】:

我尝试从命令行运行以下命令,它按预期完美运行

ssh someIP "java -jar /path/program.jar "someIP""

但是当我在 bash 脚本中写如下:

 ssh $f1 \"java -jar /path/program.jar   \"$f1\"\" ;

其中 $f1 是 IP 地址。它不起作用并给我错误:

bash: java -jar /path/program.jar someIP: 没有这样的文件或目录

我尝试回显 ssh 命令,它是正确的,我只是复制回显的命令并粘贴到命令提示符上,它已经工作了。所以我现在很困惑,我缺少的 bash 脚本有什么问题

【问题讨论】:

  • 当你启动SSH命令时,这不会读取远程计算机的.profile,这可能会导致java程序找不到。我建议您将 .profile 读数添加到您的 SSH 命令中,然后重试。 (不幸的是,我不知道如何添加这个,否则这将是一个答案而不是评论:-))

标签: linux bash shell


【解决方案1】:

你可以尽量不要逃跑。

#!/bin/bash
ssh $1 "java -jar program.jar "$1""

【讨论】:

    【解决方案2】:

    你可以试试EOF。

    ssh $1 << EOF
                #commands here
    EOF
    

    命令完成后,连接被切断。

    【讨论】:

      最近更新 更多