Tengo un programa java Desktop/testfolder/xyz.jar en una máquina remota.Múltiples comandos en la máquina remota usando script de shell
También tiene un archivo de configuración en la misma carpeta. Cuando ssh en la máquina, lo hago:
"ssh [email protected] java -cp Desktop/testfolder/xyz.jar Main"
El problema aquí es el archivo de configuración no está en el camino, ya que estamos en la carpeta de inicio por lo que mi programa no puede readup la configuración.
Así que primero quiero ir a esa carpeta y luego ejecutar el programa desde esa carpeta. En un script de shell si hiciera esto
"ssh [email protected] cd Desktop/testfolder"
"java -cp xyz.jar Main"
se ejecuta la primera instrucción y cuando se ejecuta la segunda instrucción se ejecuta en mi actual máquina no la máquina remota.
¿Podemos hacer un solo comando o hay otras soluciones para esto?
Gracias, Lalith
¡Gracias a ambos comentarios ayudados! – Lalith
¡De nada! Trey y mi respuesta hacen lo mismo siempre que la primera parte del comando "funcione": la versión con el && no realiza la segunda parte del comando si falla la primera parte. Por ejemplo, compare 'ssh [email protected]" cd/non-existant; ls -l "' to 'ssh [email protected]" cd/non-existant && ls -l "'. En el primer caso, todavía obtienes algún resultado del comando 'ls -l' (aunque el' cd' falló, probablemente el directorio de inicio del usuario 'you') y en este último caso el comando' ls -l' es omitido porque el primer * operando * devolvió * falso *. – Robin
Gracias por la sugerencia '&&'. muy útil –