Я создал веб-приложение, где я выполняю скрипт оболочки 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"
Просьба предоставить мне решение или какую-то работу вокруг, чтобы получить желаемый результат.
Заранее спасибо.
Да, вы абсолютно правы. Он отлично работает с вашим предложением. но у меня нет anyrights, чтобы вносить изменения в файл сценария. Если я запустил этот файл сценария из инструмента «SSH.net Secure shell», он отлично работает с «xyz.sh». Есть ли какая-то конкретная причина, почему он не работает с библиотекой «Rensi ssh.net» в веб-приложении. –
Возможно, причина в том, что в вашей защищенной оболочке SSH.net есть переменные среды, но вы не указали эти переменные в вашем удаленном выполнении сценария. Защищенная оболочка SSH.net - это оболочка входа, это означает, что после того, как вы откроете эту оболочку, все переменные среды автоматически устанавливаются. Вы можете сделать трюк в «вызове» скрипта, а не в самом скрипте. Добавьте путь к содержанию папки на стороне сервера перед вызовом, например: invocation_func («PATH = $ PATH:/remote_path abc.sh»). Другое предложение вызывает скрипт с оболочкой bash, а не sh shell (если это возможно) –
Я не могу изменить его на BASH. Я попытался вызвать скрипт с PATH, но не получил результат. Можете ли вы просто подробнее рассказать о том, как вызвать скрипт, добавляя путь к содержанию папки на стороне сервера? –