c# - 响应 SSH.NET 中的命令提示符
问题描述
我想中断我的输出日志线程来“确认”一个动作。例如我想安装 php,所以我输入sudo apt-get install php
. 比我必须用 a 确认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
命令呢?
解决方案
使用使用 shell 构造的输入重定向来为脚本提供输入。
喜欢:
echo input | ./your_script.sh
推荐阅读
- r - 如何在ggplot2中缩放背景图像?
- r - 使用 ifelse() 和现有数据在数据集中创建新变量
- amazon-web-services - AWS-CDK - DynamoDB 初始数据
- google-sheets - Google表格:如果在另一个被调用的表格上进行更改,则自动更改特定单元格的值
- python - 不知道如何修复 A* 寻路算法
- python-3.x - 将列值转换为上标并与另一列组合以创建新列
- mysql - 如何在正则表达式mysql中包含空格但排除除数字之外的任何字符?
- xml - 在 haskell 数据结构中建模 XML 边缘情况
- clojure - 如何在 clojure 中记录函数调用的时间
- xamarin - 当我频繁调用异步方法时,如何使每个调用在C#中按被调用顺序执行