Ssh 输入隐藏,输出有多余的缩进

Ssh 输入隐藏,输出有多余的缩进,ssh,pascal,lazarus,freepascal,delphi,Ssh,Pascal,Lazarus,Freepascal,Delphi,如前所述,我正在尝试用Pascal重新创建一个SSH概要文件管理器,这是我最初用Ruby编写的。根据提供的答案,我已经能够让shell保持打开状态并接受输入。现在我遇到了一个新问题,所有的输入都是隐藏的,所有的输出似乎都是平铺的,每行前面都有几个制表符。更新后的相关代码如下: if HasOption('c', 'connect') then begin TempFile:= GetRecord(GetOptionValue('c', 'connect')); AProcess:= TP

如前所述,我正在尝试用Pascal重新创建一个SSH概要文件管理器,这是我最初用Ruby编写的。根据提供的答案,我已经能够让shell保持打开状态并接受输入。现在我遇到了一个新问题,所有的输入都是隐藏的,所有的输出似乎都是平铺的,每行前面都有几个制表符。更新后的相关代码如下:

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

所以您可能使用crt或其他终端库,将终端置于原始模式,同时需要cr和lf


将crt从uses子句中删除,可能会更好

这与制表符无关。每行的末尾都缺少一个回车符。他们只有线路馈线。因此,每一个新行都从列中前一行留下的行之后开始。您列出的代码似乎没有显示如何/在何处输出这些信息,因此很难说出更多细节。这是一个SSH连接,因此输出不是由我的代码生成的,而是由远程服务器生成的。我在Linux上。我使用的终端仿真器叫做Yakuake,所有其他终端仿真器都有同样的问题。我没有处理,甚至没有生成任何输出。我的代码在运行它的任何终端中打开到服务器的SSH连接,然后向我展示控制台。有点像Execve类型的东西,除了它不替换当前进程,所以我可以在shell退出后执行更多任务。从外观上看,它仍然是LF对CRLF的问题。不确定你的终端仿真器设置是什么。那…工作得很好。我真不敢相信会那么容易。非常感谢你!