使用shell脚本在远程计算机上的多个命令

时间:2010-10-16 18:12:35

标签: ssh

我在远程计算机上有一个java程序Desktop / testfolder / xyz.jar。

它在同一文件夹中也有一个配置文件。当我SSH到机器时,我做:

"ssh user@remote java -cp Desktop/testfolder/xyz.jar Main"

这里的问题是配置文件不在路径中,因为我们在主文件夹中,所以我的程序无法读取配置。

所以我想首先进入该文件夹然后从该文件夹运行该程序。 在shell脚本中,如果我这样做

"ssh user@remote cd Desktop/testfolder"
"java -cp xyz.jar Main"

它执行第一个语句,当第二个语句运行时,它在我当前的机器而不是远程机器上运行。

我们可以只执行一个命令,还是有其他任何解决方案?

谢谢你, Lalith

3 个答案:

答案 0 :(得分:42)

尝试这样的事情:

ssh you@yours.com "cd /home && ls -l"

答案 1 :(得分:16)

您可以尝试用分号分隔命令:

ssh user@remote "cd Desktop/testfolder ; java -cp xyz.jar Main"

答案 2 :(得分:4)

如果您想将命令分成多行以便于阅读,您还可以将命令列表传递给bash命令,如下所示:

ssh user@remote.host bash -c "'
  cd Desktop/testfolder
  java -cp xyz.jar Main
'"