如何用Python编写shell

时间:2010-04-07 17:31:14

标签: python shell

我编写了一个可以执行某些任务的小型控制台应用程序。用户界面类似于版本控制系统或yum等。因此,基本上您可以将其视为特定于域的语言。现在我想编写一个(类似bash)shell,它可以执行并自动完成这种语言并具有命令历史记录(因此我不必在每个命令上加载和保存相当大的xml文件)。简而言之,我想要像ipython这样的东西,但不是为了执行python代码而是为了我自己的DSL。

是否有任何图书馆可以帮助我这样做?我看到python中有一个readline和rlcompleter模块,但是它的文档似乎表明这只是用于python shell本身,或者我错过了什么?

2 个答案:

答案 0 :(得分:22)

您应该查看cmdcmd2模块。我认为他们会做你想做的。有关于这些的PyCon talk

答案 1 :(得分:3)

如果您需要通过网络Twisted访问管理shell,python框架的沙井是一个很好的解决方案。例如:

http://www.devshed.com/c/a/Python/SSH-with-Twisted/3/