假设我有一个系统服务,我想提供对它的低级维护访问。
为此,我想创建一个独立的控制台应用程序,以某种方式连接到服务器进程并让用户输入命令,允许它在单/双 TAB 按下时使用自动完成和自动建议(只是像 linux bash shell、mysql cli、cmd.exe 和无数其他),允许命令行编辑功能(历史记录、光标键在文本中移动……)等。
现在,通过从头开始、处理用户输入、扫描按下的键并执行正确的操作来创建类似的东西并不是什么大问题。但是,为什么要重新发明轮子?是否有一些库/框架可以帮助解决此类问题,就像在 linux 下提供改进的命令行编辑功能的 readline 库一样?
当然,这个新的“shell”只会响应有效的、特定于域的命令,并会建议有效的参数、选项、开关...
有什么想法吗?谢谢!
最佳答案
这听起来很适合 PowerShell。它是一个完全成熟的 shell,您可以创建自定义 shell,为您的域特定命令(可以用 C# 开发)托管一组管理单元,它还允许远程执行命令。
不利的一面是,为您的特定案例实现某些东西并不是免费的,因为工作量很小。
许多 MS 服务器产品现在都有自定义的 PowerShell“shell ”,例如
交流 - http://technet.microsoft.com/en-us/library/dd297939.aspx
更新
缺点是学习一个新的 shell 以及如何自定义它,尤其是面向对象的。兔子洞在这方面很深入,但手动滚动您自己的 shell 功能本身显然非常耗时。
一些链接:
书:Windows PowerShell in Action
一般:http://www.computerperformance.co.uk/powershell/index.htm
介绍自定义命令\span-in:http://msdn.microsoft.com/en-us/magazine/cc163293.aspx
关于c# - 为特定于域的操作创建独立的控制台(shell),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3049892/