Я хочу запустить удаленную программу через ssh, которая требует определенной среды. Таким образом, перед выполнением программы я создаю конкретный файл, создающий среду. Если я зарегистрировался на машине непосредственно это не проблема, но когда я выполнить команду через SSHИсходный сценарий удаленно через ssh
#!/bin/bash
foo=`ssh [email protected] "source ~/script.sh; ~/run/program"`
Я получаю сообщение об ошибке, указывающее, что сценарий не был получен правильно. Знаете ли вы, что мне нужно сделать, чтобы получить сценарий и программу, выполненную в том же сеансе?
EDIT: Я экспортирую LD_LIBRARY_PATH со сценарием, и исполняемый файл жалуется, что он не может найти файл общих объектов. Оболочка по умолчанию - bash. «Сессия» окончательно не правильная формулировка. Я имел в виду «терминальную среду».
«* Я получаю сообщение об ошибке, указывающее, что сценарий не был правильно использован. *« Вам нужно быть более конкретным, чем это. Пожалуйста, обновите свой вопрос, чтобы показать * точное сообщение об ошибке (скопируйте и вставьте его). Я просто попробовал аналогичный пример, и он сработал. –
Какая ошибка? Например, если оболочка пользователя на удаленной машине равна ksh, то 'source' не будет работать, вы должны использовать' .' вместо этого. Если исходный файл не экспортирует свои переменные, программа не увидит их независимо. Кроме того, что вы подразумеваете под «той же сессией»? Программа будет работать в дочернем процессе. – cdarke
Я редактировал вопрос выше. @KeithThompson: Приятно знать, что он должен работать в принципе. Я продолжаю пытаться ... – Timelimelim