2011-05-19 72 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