我正在將交互式前端構建到 分佈式應用程序,該應用程序迄今已用於運行具有批處理作業結構且不需要編號的工作負荷 所有的UI。這個應用程序主要是用Perl和C編寫的,並且運行在Unix和Windows機器上,但我認爲這與UI不相關。對如何構建偉大的命令行界面的啓示
第一個這樣的前端將會有一個命令行用戶界面 - 目前,我設想類似的Procurve的的CLI 交換機和Cisco路由器我合作過的東西。
的現代化網絡設備的CLI,命令將類似於 簡單的句子,(即show vlans ports 1-4
)和CLI將 有一些隱含的狀態,很多在Unix外殼和 cmd.exe
在Windows中有環境變量和電流的方式工作 目錄。此外,我想實現偉大的選項卡完成, 儘可能知道應用程序的狀態,我希望能夠做到這一點儘可能與 小應用程序-特定代碼。
底層功能(終端I/O)似乎很容易實現在GNU Readline或類似庫的頂部,但這只是 真正的樂趣開始的地方。到目前爲止,我已經看過Perl模塊 Term::Shell
和 Term::ShellUI
, 但我不相信我想使用它們中的任何一個。我仍然在考慮滾動我自己的解決方案,目前我主要在尋找 的靈感。
您可以推薦任何應用程序或庫,不管 實現語言,實現一個良好的CLI,我可以從 借用想法嗎?
我不知道靈感,但我非常不喜歡思科交換機的CLI。當然,它具有漂亮的自動完成功能,但該功能基本上是唯一的在線幫助,而且還遠遠不夠。另外,輸出通常很難解析,這使得腳本很難 - 首先排除CLI的全部要點。 – 2009-12-12 13:46:42
已注意。與思科交換機不同,我公開了我的應用的完整API,因此不需要任何'期望'腳本。 – hillu 2009-12-12 13:49:07
誰是你的目標聽衆?他們是非常技術性的並習慣於CLI? – XanderLynn 2009-12-12 13:51:05