Commandes multiples sur la machine distante en utilisant le script shell

j'ai un programme java Desktop/dossiertest/xyz.pot sur une machine distante.

il a aussi un fichier de configuration sur le même dossier. Quand j'ai SSH sur la machine, je fais:

"ssh [email protected] java -cp Desktop/testfolder/xyz.jar Main"

le problème ici est que le fichier de configuration n'est pas dans le chemin, comme nous sommes dans le dossier d'accueil de sorte que mon programme ne peut pas lire la configuration.

Donc, je veux d'abord aller dans ce dossier, puis exécutez le programme à partir de ce dossier. Dans un script shell si je l'ai fait ce

"ssh [email protected] cd Desktop/testfolder"
"java -cp xyz.jar Main"

il exécute la première instruction et lorsque la seconde instruction est exécutée, elle s'exécute sur ma machine actuelle et non sur la machine distante.

Peut-on faire une seule commande ou il y a d'autres solutions ?

Merci, Lalith

25
demandé sur Kieran 2010-10-16 22:12:34
la source

3 ответов

Essayez quelque chose comme ceci:

ssh [email protected] "cd /home && ls -l"
41
répondu Robin 2012-01-14 03:19:50
la source

Vous pouvez essayer de séparer les commandes par un point-virgule:

ssh [email protected] "cd Desktop/testfolder ; java -cp xyz.jar Main"
16
répondu Trey Hunner 2010-10-16 22:16:08
la source

si vous voulez diviser vos commandes sur plusieurs lignes pour des raisons de lisibilité, vous pouvez aussi passer la liste des commandes à bash commande comme suit:

ssh [email protected] bash -c "'
  cd Desktop/testfolder
  java -cp xyz.jar Main
'"
4
répondu Dirk 2016-10-11 17:21:18
la source

Autres questions sur