Ответ 1
Попробуйте что-то вроде этого:
ssh [email protected] "cd /home && ls -l"
У меня есть Java-программа Desktop/testfolder/xyz.jar
на удаленной машине. Он имеет файл конфигурации в той же папке. Когда я SSH в машину, я делаю:
"ssh [email protected] java -cp Desktop/testfolder/xyz.jar Main"
Проблема здесь в том, что файл конфигурации не находится в пути, так как мы находимся в домашней папке, поэтому моя программа не может прочитать конфигурацию.
Я хочу сначала зайти в эту папку, а затем запустить программу из этой папки. В сценарии оболочки, если я сделал это
"ssh [email protected] cd Desktop/testfolder"
"java -cp xyz.jar Main"
он выполняет первый оператор, а когда выполняется второй оператор, он выполняется на моем текущем компьютере, а не на удаленном.
Можем ли мы сделать только одну команду, или есть другие решения для этого?
Попробуйте что-то вроде этого:
ssh [email protected] "cd /home && ls -l"
Вы можете попробовать разделить команды точкой с запятой:
ssh [email protected] "cd Desktop/testfolder ; java -cp xyz.jar Main"
Если вы хотите разделить свои команды на несколько строк для удобства чтения, вы также можете передать список команд команде bash
следующим образом:
ssh [email protected] bash -c "'
cd Desktop/testfolder
java -cp xyz.jar Main
'"