Ich habe ein Java-Programm Desktop/testfolder/xyz.jar auf einem Remote-Computer.Mehrere Befehle auf Remote-Maschine mit Shell-Skript
Es hat auch eine Konfigurationsdatei im selben Ordner. Als ich in die Maschine SSH, tun I:
"ssh [email protected] java -cp Desktop/testfolder/xyz.jar Main"
Das Problem hier ist die Konfigurationsdatei nicht im Weg ist, wie wir mein Programm sind, können im Home-Ordner so die Konfiguration nicht Einlesesteuervorrichtung.
Also ich möchte zuerst in diesen Ordner gehen und dann das Programm aus diesem Ordner ausführen. In einem Shell-Skript, wenn ich tue diesen
"ssh [email protected] cd Desktop/testfolder"
"java -cp xyz.jar Main"
es führt die erste Anweisung und wenn die zweite Anweisung ausgeführt wird, es läuft auf meiner aktuellen Maschine nicht die Remote-Maschine.
Können wir nur einen Befehl ausführen oder gibt es andere Lösungen dafür?
Danke, Lalith
Vielen Dank für Ihre Kommentare! – Lalith
Gern geschehen! Treys und meine Antwort machen dasselbe, wenn der erste Teil des Befehls "funktioniert" - die Version mit dem && führt den zweiten Teil des Befehls nicht aus, wenn der erste Teil fehlschlägt. Vergleichen Sie zum Beispiel 'ssh [email protected]" cd/non-existant; ls -l "' mit 'ssh [email protected]" cd/non-existant && ls -l "'. Im ersten Fall erhalten Sie immer noch eine Ausgabe von dem Befehl "ls -l" (obwohl das "cd" fehlgeschlagen ist - wahrscheinlich das Home-Verzeichnis des "you" -Benutzers) und im letzteren Fall ist der Befehl "ls -l" Übersprungen, weil der erste * Operand * * false * zurückgegeben hat. – Robin
Danke für den '&&' Tipp. sehr hilfreich –