2015-03-09 2 views
-1

Я создал веб-приложение, где я выполняю скрипт оболочки abc.sh на удаленном сервере unix. Я могу выполнить этот скрипт. Но от abc.sh Я звоню еще один скрипт xyz.sh, который не называется. Я использую библиотеку Rensi.sshnet для выполнения сценариев оболочки в веб-приложении.Не удалось выполнить скрипт (.sh) внутри скрипта (.sh) с помощью библиотеки rensi.sshnet в веб-приложении C#

структура папок для файлов сценариев: /home/scripts/

Примечание: Они оба находятся в одной папке.

abc.sh выглядит следующим образом:

echo test 

echo "execute another shell script" 

xyz.sh 

echo "Executed" 

Просьба предоставить мне решение или какую-то работу вокруг, чтобы получить желаемый результат.

Заранее спасибо.

ответ

0

Возможно, ваш файл xyz.sh отсутствует в вашем PATH. Попробуйте изменить эту строку

xyz.sh 

В

./xyz.sh 
+0

Да, вы абсолютно правы. Он отлично работает с вашим предложением. но у меня нет anyrights, чтобы вносить изменения в файл сценария. Если я запустил этот файл сценария из инструмента «SSH.net Secure shell», он отлично работает с «xyz.sh». Есть ли какая-то конкретная причина, почему он не работает с библиотекой «Rensi ssh.net» в веб-приложении. –

+0

Возможно, причина в том, что в вашей защищенной оболочке SSH.net есть переменные среды, но вы не указали эти переменные в вашем удаленном выполнении сценария. Защищенная оболочка SSH.net - это оболочка входа, это означает, что после того, как вы откроете эту оболочку, все переменные среды автоматически устанавливаются. Вы можете сделать трюк в «вызове» скрипта, а не в самом скрипте. Добавьте путь к содержанию папки на стороне сервера перед вызовом, например: invocation_func («PATH = $ PATH:/remote_path abc.sh»). Другое предложение вызывает скрипт с оболочкой bash, а не sh shell (если это возможно) –

+0

Я не могу изменить его на BASH. Я попытался вызвать скрипт с PATH, но не получил результат. Можете ли вы просто подробнее рассказать о том, как вызвать скрипт, добавляя путь к содержанию папки на стороне сервера? –

Смежные вопросы