开发者

Multiple commands on remote machine using shell script

开发者 https://www.devze.com 2023-01-20 15:05 出处:网络
I have a Java program Desktop/testfolder/xyz.jar on a remote machine. It has a configuration file on the same folder. When I SSH into the machine, I do:

I have a Java program Desktop/testfolder/xyz.jar on a remote machine. It has a configuration file on the same folder. When I SSH into the machine, I do:

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

The problem here is the configuration file is not in the path, as we are in the home folder so my program cannot read the configuration.

I want to first go into that folder and then run the program from that folder. In a shell script if I did this

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

it executes the first statement and when t开发者_StackOverflowhe second statement is run it runs on my current machine not the remote machine.

Can we do only one command or there are any other solutions for this?


Try something like this:

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


You could try separating the commands by a semicolon:

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


If you want to split your commands over multiple lines for the sake of readability, you could also pass the list of commands to the bash command as follows:

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

精彩评论

暂无评论...
验证码 换一张
取 消