我正在尝试通过 Plink 自动执行远程服务器 shell 命令。我所做的事情之一就是
grep
命令。
现在假设如果结果很多数据那么我只想中断命令。
通常在 PuTTY 中,您只需执行 Ctrl-C 或 Ctrl-Break 即可中断命令。
Plink 的替代方案是什么?
不要从 C# 应用程序运行 Plink 来实现 SSH。使用 SSH 的本机 .NET 实现,例如 SSH.NET。 – 它将使您能够完全控制连接,并且您不必使用像发送 Ctrl+C 这样的 hacks。
var client = new SshClient("example.com", "username", "password");
client.Connect();
SshCommand command = client.CreateCommand("grep pattern file");
IAsyncResult result = command.BeginExecute();
using (var outputReader = new StreamReader(command.OutputStream))
using (var extendedReader = new StreamReader(command.ExtendedOutputStream))
{
int read = 0;
while (read < 10240)
{
string s;
s = outputReader.ReadToEnd();
read += s.Length;
Console.Write(s);
s = extendedReader.ReadToEnd();
read += s.Length;
Console.Write(s);
}
}
command.CancelAsync();
此外,您可以在一定次数的比赛后使用
-m
开关来停止grep
。