Несколько команд на удаленном компьютере с использованием сценария оболочки
У меня есть Java-программа Desktop/testfolder/xyz.jar на удаленной машине.
Он также имеет файл конфигурации в той же папке. Когда я SSH в машину, я делаю:
"ssh user@remote java -cp Desktop/testfolder/xyz.jar Main"
Проблема здесь в том, что файл конфигурации не находится в пути, так как мы находимся в домашней папке, поэтому моя программа не может прочитать конфигурацию.
Поэтому я хочу сначала зайти в эту папку, а затем запустить программу из этой папки. В сценарии оболочки, если я сделал это
"ssh user@remote cd Desktop/testfolder"
"java -cp xyz.jar Main"
он выполняет первый оператор, а когда выполняется второй оператор, он выполняется на моем текущем компьютере, а не на удаленном.
Можем ли мы сделать только одну команду, или есть другие решения для этого?
Спасибо, Лалит
3 ответа
Попробуйте что-то вроде этого:
ssh you@yours.com "cd /home && ls -l"
Вы можете попробовать разделить команды точкой с запятой:
ssh user@remote "cd Desktop/testfolder ; java -cp xyz.jar Main"
Если вы хотите разделить свои команды на несколько строк для удобства чтения, вы также можете передать список команд bash
команда следующим образом:
ssh user@remote.host bash -c "'
cd Desktop/testfolder
java -cp xyz.jar Main
'"