2013-06-25 97 views
0

我想有解析嵌套配置中的Bash,象下面這樣:在Bash中解析嵌套配置的簡單解決方案?

[foo] 
    [bar] 
     key="value" 
    [baz] 
     key="value" 

我試圖this的.ini解析器,但它不支持嵌套。後來我發現在.ini文件中嵌套isn't allowed

我搜索了一個用於bash的YAML解析器,但是我找不到很多東西。在bash中嵌套的配置解析在我看來是一個基本問題,所以我猜一個簡單的解決方案存在,但我找不到一個解決方案。在Bash中解析嵌套配置的瑣碎解決方案是否存在?如果是,哪一個?

編輯

我想要寫一個自動備份的腳本/程序和數據庫恢復。配置需要靈活,以便我可以選擇不同主機上的數據庫,使用不同的用戶和密碼以及不同的備份間隔。哦,我想學習bash。但我開始認爲Bash不是我的問題的正確工具。

+0

你最終的目標是什麼? Bash不是處理文件內容的最佳工具,請查看'awk','perl','sed'等。 –

回答

2

Bash不適合此語言。與Python和Ruby等語言相比,no nested arraysdynamic variable assignment是一個雷區。這就是說,它聽起來就像你自己指定的格式解析器,所以你可以簡單地使用分層命名方案,配置:

foo_bar_key="value" 
foo_baz_key="value" 
+0

我不認爲說Bash是錯誤的語言。當然,它不像Python或Ruby那麼簡單,但那僅僅是因爲它們構建的庫隱藏了複雜性。 [你可以在bash中編寫一個解析器](http://stackoverflow.com/a/31705244),然後將它放在一個庫文件中,以便解析變成一行內容。 – starfry

+0

對不起,該解析器接近難以理解。不用了,謝謝。 – l0b0