Ho un programma Java/testfolder/xyz.jar su un computer remoto.Comandi multipli su macchine remote usando lo script di shell
Ha anche un file di configurazione nella stessa cartella. Quando ho SSH nella macchina, lo faccio:
"ssh [email protected] java -cp Desktop/testfolder/xyz.jar Main"
Il problema qui è il file di configurazione non è nel percorso, come siamo nella cartella home quindi il mio programma non può readup la configurazione.
Quindi voglio prima andare in quella cartella e quindi eseguire il programma da quella cartella. In uno script di shell, se ho fatto questo
"ssh [email protected] cd Desktop/testfolder"
"java -cp xyz.jar Main"
esegue la prima istruzione e quando la seconda istruzione è gestito corre sulla mia macchina non corrente della macchina remota.
Possiamo fare solo un comando o ci sono altre soluzioni per questo?
Grazie, Lalith
Grazie a entrambi i tuoi commenti! – Lalith
Prego! Trey e la mia risposta fanno la stessa cosa a condizione che la prima parte del comando "funzioni" - la versione con && non esegua la seconda parte del comando se la prima parte fallisce. Per esempio, confronta 'ssh [email protected]" cd/non-esistente; ls -l "' a 'ssh [email protected]" cd/non-esistente && ls -l "'. Nel primo caso si ottiene ancora un output dal comando 'ls -l' (anche se' cd' ha avuto esito negativo - probabilmente la directory home dell'utente 'you') e nel secondo caso il comando' ls -l' è saltato perché il primo * operando * ha restituito * falso *. – Robin
Grazie per il suggerimento '&&'. molto utile –