2010-09-18 59 views
2

我正在研究一個可以直接從命令行使用選項和輸入文件的程序,或者完全交互式地使用shell。對於最初的執行,我使用GNU的Getopt來解析命令行選項。解析交互式輸入的技巧(如殼)?

在文件上使用時,我使用的是Flex和Bison。由於語法非常簡單,這大大簡化了解析過程,但我並不完全確定我應該如何解決外殼方面的問題。之前我使用過GNU的readline和歷史庫,然後我這樣做,我完全依賴於strtok和嵌套switch語句的許多比較。它的工作,但它似乎有點像一個黑客工作...

有沒有更好的方法來解決這個問題?

對於shell允許的數據輸入,我正在考慮將它直接管道到臨時文件並再次使用Flex和Bison,但對於各種參數(比如Getopt現在爲我解析的命令行選項)是有更好的方法嗎?

我正在嘗試回收我的getopt代碼,因爲它靈活地捕獲所有東西,如果它不是我的選擇,我可以假設它的數據並將其輸出。但我喜歡第二個意見。

感謝

回答

0

只要將它用Python語言編寫。使用cmd模塊編寫shell程序,並使用shlex來解析輸入,就像shell一樣。