2011-05-19 77 views
3

有人可以建议我,如何在tcl中收集man命令的输出?如何在tcl中收集man命令的输出?

我写: -

set hello [ man {command-name}] 

和我在执行脚本时,该程序被暂停并 人命令开始在前台运行,为“按RETURN”一遍又一遍,直到提示用户 它完成了。

回答

4

你只是缺少exec命令

set output [exec man cmd-name] 

当您在互动 TCL会议做set out [man cmd-name],该unknown命令将截取“人”命令,并在其上隐含执行EXEC。在这种情况下,'man'知道你是互动的,并通过你的$ PAGER管理manpage。

+0

谢谢格伦。但我正在使用我自己的编译器,并且有一些命令只对它知道。 “exec”会将man命令重定向到使用shell,并导致“没有手动输入{command-name}”,这是我不想要的。有什么建议么? – 2011-05-19 18:22:20

+0

@amitesh,你是什么意思“使用我自己的编译器”?你能确定哪些手册页需要特别处理吗?它会像修改MANPATH env变量来访问您的特殊手册页一样简单吗? – 2011-05-19 18:55:03

+0

@amitesh:'exec'不会“重定向man命令来使用shell”。如果你想'man'来处理一个特定的文件,而不是在MANPATH中查找它,传入文件的全名; 'file normalize'可能对获取完整文件名很有意思。 – 2011-05-20 08:32:17