【发布时间】:2015-09-03 16:51:47
【问题描述】:
如前所述here,我正在尝试在 Pascal 中重新创建我最初用 Ruby 编写的 SSH 配置文件管理器。通过提供的答案,我已经能够让外壳保持打开状态并接受输入。现在我遇到了一个新问题,即所有输入都被隐藏了,所有输出似乎都在每行之前平铺了几个制表符。更新后的相关代码如下:
if HasOption('c', 'connect') then begin
TempFile:= GetRecord(GetOptionValue('c', 'connect'));
AProcess:= TProcess.Create(nil);
AProcess.Executable:= '/usr/bin/ssh';
AProcess.Parameters.Add('-p');
AProcess.Parameters.Add(TempFile.Port);
AProcess.Parameters.Add('-tt');
AProcess.Parameters.Add(TempFile.Username + '@' + TempFile.Address);
AProcess.Options:= [];
AProcess.ShowWindow:= swoShow;
AProcess.InheritHandles:= False;
AProcess.Execute;
AProcess.WaitOnExit;
AProcess.Free;
Terminate;
Exit;
end;
输出提供如下所示:
我依次运行ls、pwd 和exit。
【问题讨论】:
-
这与标签无关。这些行在末尾都缺少一个回车符。他们只有换行。因此,每一新行都从上一行离开的那一行之后的列开始。您列出的代码似乎没有显示您输出此信息的方式/位置,因此很难说出比这更详细的信息。
-
是SSH连接,所以输出不是我的代码,是远程服务器生成的。
-
我在 Linux 上。我使用的终端模拟器叫做 Yakuake,所有其他终端模拟器都有同样的问题。我没有处理甚至生成任何输出。我的代码在运行它的任何终端中打开与服务器的 SSH 连接,然后向我显示控制台。某种 Execve 类型的东西,除了它不会替换当前进程,因此我可以在 shell 退出后执行更多任务。
-
从外观上看,它仍然是 LF 与 CRLF 的问题。不确定您的终端模拟器设置是什么。
标签: ssh pascal lazarus freepascal delphi