Fornecer subcomandos para um comando (sudo / su) executado com SSH.NET

Estou tentando usar o Renci SSH.NET para conectar-se a um servidor Linux remoto a partir de um aplicativo Web C # e executar scripts de shell. Eu quero executar os scripts um após o outro. Mas não como executar os scripts, ler a saída e armazená-la em um rótulo. Eu tentei o código abaixo, mas não consigo passar vários comandos, uma linha após a outr

SshClient sshclient = new SshClient("host", UserName, Password);
sshclient.Connect();
ShellStream stream = sshclient.CreateShellStream("commands", 80, 24, 800, 600, 1024);
public StringBuilder sendCommand(string customCMD)
{
    StringBuilder answer;

    var reader = new StreamReader(stream);
    var writer = new StreamWriter(stream);
    writer.AutoFlush = true;
    WriteStream(customCMD, writer, stream);
    answer = ReadStream(reader);
    return answer;
}

private void WriteStream(string cmd, StreamWriter writer, ShellStream stream)
{
    writer.WriteLine(cmd);
    while (stream.Length == 0)
    {
        Thread.Sleep(500);
    }
}

private StringBuilder ReadStream(StreamReader reader)
{
    StringBuilder result = new StringBuilder();

    string line;
    while ((line = reader.ReadLine()) != null)
    {
        result.AppendLine(line);
    }
    return result;
}

Estou tentando executar os comandos abaixo

sudo su - wwabc11
whoami
cd /wwabc11/batch/bin/
pwd

Como executar os comandos um após o outro e ler as informações de saída? Obrigado

questionAnswers(1)

yourAnswerToTheQuestion