Отвечая на командные запросы в SSH.NET - PullRequest
1 голос
/ 14 марта 2019

Я хочу прервать поток вывода журнала, чтобы «подтвердить» действие.Например, я хочу установить php, поэтому набираю sudo apt-get install php.Чем я должен подтвердить, что с y я знаю, что могу написать sudo apt-get install php -y.У меня возникает та же проблема, когда я выполняю скрипт и мне нужно заполнить необходимую информацию.

using (var client = new SshClient(ip, Convert.ToInt16(port), username, password))
{
    client.Connect();

    var command = client.CreateCommand((txtCommand.Text));
    var result = command.BeginExecute();

    //log vps output 
    using (var reader =
       new StreamReader(command.OutputStream, Encoding.UTF8, true, 1024, true))
    {
        while (!result.IsCompleted || !reader.EndOfStream)
        {
            string line = reader.ReadLine();
            if (line != null)
            {
                     txtOutput1.Invoke(
                         (MethodInvoker)(() =>
                     txtOutput1.AppendText(line + Environment.NewLine)));
            }
        }
    }

    command.EndExecute(result);
    client.Disconnect();
}

Так как же мне прервать поток, чтобы выполнить новую команду для решения команды read?

1 Ответ

0 голосов
/ 15 марта 2019

Используйте перенаправление ввода, используя конструкции оболочки, чтобы обеспечить ввод для сценария.

Как:

echo input | ./your_script.sh
...