解析交互式输入的技术(如shell)?

时间:2010-09-18 16:53:42

标签: parsing shell input

我正在开发一个程序,可以直接从命令行使用选项和输入文件,或者像shell一样完全交互式使用。对于初始执行,我使用GNU的Getopt来解析命令行选项。

在文件上使用时,我正在使用Flex和Bison。这简化了解析,因为语法非常简单,但我不完全确定如何处理shell方面。我之前使用过GNU的readline和历史库,当我这样做时,我完全依赖于strtok和许多与嵌套switch语句的比较。它有效但看起来有点像黑客工作......

有没有更好的方法来解决这个问题?

对于shell允许的数据输入我正在考虑将它直接传递给临时文件并再次使用Flex和Bison,但是对于各种参数(比如Getopt现在为我解析的命令行选项)是有的更好的方法?

我正在考虑尝试回收我的getopt代码,因为它可以灵活地捕获所有内容,如果它不是一个选项,我可以假设它的数据并将其输出。但我喜欢第二种意见。

谢谢

1 个答案:

答案 0 :(得分:0)

只需用Python编写即可。使用cmd模块编写shell程序并使用shlex解析输入,就像shell一样。