如前所述here,我试图在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。
从uses子句中删除crt,可能会更好