Есть ли способ получить вывод запущенной команды ssh?

Я пишу программу, которая должна выдавать вывод из команды ssh в консоли, но она делает это, только если я завершаю сеанс bash. Вот код:

public async Task test()
    {
        var host = "123.234.26.28";
        var username = "root";
        var password = "xxxxxxxxxx";


        var client = new SshClient(host, username, password);

        client.Connect();
        var cmd = client.CreateCommand("./testcommand.sh");
        var result = cmd.Execute();

        Console.Write(result);

        var reader = new StreamReader(cmd.ExtendedOutputStream);
        Console.WriteLine("DEBUG:");
        Console.Write(reader.ReadToEnd());

        client.Disconnect();
    }

Testprogramm.sh — это скрипт, который запускается и запускается и должен эмулировать работающий сервер, который также не прекращает выдавать результат. Все, что я хочу, это чтобы вывод выдавался в реальном времени в моем терминале.


person YouAreBamboozled    schedule 07.07.2021    source источник
comment
Вы пытались использовать reader.ReadLine() в цикле, а не reader.ReadToEnd()?   -  person Jon Skeet    schedule 07.07.2021
comment
У вас была бы та же проблема, если бы вы использовали ReadToEnd с Process.StandardOutput. Звонок не закончится, пока процесс не завершится. Вам придется читать вывод построчно, посимвольно или блок за блоком   -  person Panagiotis Kanavos    schedule 07.07.2021
comment
Как мне это сделать   -  person YouAreBamboozled    schedule 07.07.2021