Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tcl 文本小部件中putty的标准输出_Tcl_Putty - Fatal编程技术网

Tcl 文本小部件中putty的标准输出

Tcl 文本小部件中putty的标准输出,tcl,putty,Tcl,Putty,我使用putty连接服务器并执行命令,但我不知道如何将命令输出重定向到文本小部件 exec patchtoputty/putty.exe -ssh myserver -pw mypass -m mycommand 通常情况下,这应(?)起作用: 但在这种情况下,我不会执行putty(或例如cygwin)命令,该命令有自己的终端窗口 问候,, lucas获取窗口的输出并将其插入文本小部件是非常棘手的;你必须定期抓取屏幕,并对结果进行OCR或其他操作。可笑 但对于putty,最好的选择是从同一个家

我使用putty连接服务器并执行命令,但我不知道如何将命令输出重定向到文本小部件

exec patchtoputty/putty.exe -ssh myserver -pw mypass -m mycommand
通常情况下,这应(?)起作用:

但在这种情况下,我不会执行putty(或例如cygwin)命令,该命令有自己的终端窗口

问候,,
lucas

获取窗口的输出并将其插入文本小部件是非常棘手的;你必须定期抓取屏幕,并对结果进行OCR或其他操作。可笑

但对于putty,最好的选择是从同一个家族切换到plink.exe(我想是“putty链接”)。它基本上是油灰,但没有窗口的东西,并能够很好地运行在管道中。它采用与putty相同的选项,因此修改代码应该非常容易

catch {exec wherever/plink.exe -ssh myserver -pw mypass -m mycommand} results
.text insert 1.0 $results

(构建您自己的putty?只需确保同时构建plink即可。)

plink运行良好,但在我的情况下,当我想使用远程命令“-m mycommand”执行命令时,我有一个answear“bash:command not found”。当我在登录服务器后执行相同的命令时(不是通过远程命令),它工作得很好。我认为当使用远程命令时,plink在改变环境方面有问题?@lucas远程命令的运行是一个复杂的话题(tl;dr:有很多事情可能会出错,很多事情你可以调整),我已经有一段时间没有看过plink的细节了,但是,当转到任何POSIX ish系统时,可以在运行命令之前使用
/usr/bin/env FOO=BAR mycommand
设置变量。这可能会有帮助。(或者可能不是;毕竟我有很长一段时间没有手动使用plink。)我认为问题在于,我尝试执行的命令是针对安装在服务器上的软件的。Plink正在连接服务器并在收到软件响应之前执行命令,这就是他无法识别命令的原因。也许有一种方法可以通过plink连接并在第二步执行命令(而不是一行)?也许期待能帮上忙?但即便如此,我也无法将其包装到.exe文件(package not found message),或者还有其他更简单的方法?@lucas对我来说,这听起来更像是缺少某种环境设置(特殊
路径
?),这种设置是在您以交互方式登录时设置的,但在使用“远程运行命令”模式时却无法完成。不幸的是,这让我们回到了“有很多事情可能会出错”。
catch {exec wherever/plink.exe -ssh myserver -pw mypass -m mycommand} results
.text insert 1.0 $results