#c# #shell #unix
#c# #оболочка #unix
Вопрос:
В моем текущем проекте мне нужно вызвать сценарий оболочки Unix из приложения C #. Мне также нужно получить ответ, был ли скрипт выполнен успешно или произошла какая-либо ошибка.
Программа на C # запущена на компьютере с Windows. Мне нужно подключиться к машине Unix и выполнить скрипт.
Кто-нибудь может сообщить мне, как это можно сделать с помощью C #?
Комментарии:
1. Вы запускаете программу C # в окне Unix?
2. Программа на C # установлена на компьютере с Windows. Мне нужно подключиться к компьютеру Unix и выполнить скрипт.
Ответ №1:
Решит ли это вашу проблему?
SharpSSH — библиотека защищенной оболочки (SSH) для .NET
Обновить
Обратитесь к сайту разработчика для SharpSSH для получения дополнительной информации о том, как использовать инструмент.
Обновление 2
- измените ссылку сайта разработчика на архивную ссылку.
Комментарии:
1. Я проверил это. Это кажется многообещающим. Но, как упомянул автор, он не завершен. Мы получаем ошибку при подключении к удаленной машине. Мы пытаемся решить эту проблему.
2. Привет, мы попробовали, но не смогли решить проблему. При подключении к удаленному компьютеру мы получаем ошибку тайм-аута.
3. Привет, мы попробовали, но не смогли решить проблему. При подключении к удаленному компьютеру мы получаем ошибку тайм-аута.
4. Привет, заходили ли вы на сайт автора SharpSSH
5. Использование исходного кода непосредственно с сайта автора сработало для нас. большое спасибо за помощь.
Ответ №2:
Простой способ выполнить это с помощью System.Диагностика.Процесс
// Start the child process.
Process p = new Process();
// Redirect the error stream of the child process.
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.FileName = "Write500Lines.exe";
p.Start();
// Do not wait for the child process to exit before
// reading to the end of its redirected error stream.
// p.WaitForExit();
// Read the error stream first and then wait.
string error = p.StandardError.ReadToEnd();
p.WaitForExit();
Комментарии:
1. Спасибо, Терренс. Приложение C # выполняется в среде Windows, и мне нужно подключиться к удаленному блоку unix, чтобы выполнить там сценарий оболочки. Существует ли какой-либо прямой метод для этого?
Ответ №3:
Даже у меня была такая же проблема, я искал решение в Google около 1 месяца.
Наконец, я решил использовать plink.exe (версия командной строки для putty.exe ) для подключения к unix box и выполнения скрипта там.
Вы должны использовать plink через процесс c #, я пробовал это, и это работает потрясающе.
Но теперь я сталкиваюсь с проблемой, с которой я сталкиваюсь, когда я запускаю скрипт из процесса c #, я не могу передать аргументы этому скрипту. Вероятно, было бы обрядом сказать, что я не знаю, как это сделать.
С уважением -Aakash
Комментарии:
1. Привет, Aakash, как сказал OnesimusUnbound, ознакомьтесь с SharpSSH с исходного сайта, tamirgal.com/blog/page/SharpSSH.aspx
2. Да, Хари, но мне больше понравился plink, чем SharpSSH, plink более стабилен.