2014-07-13 73 views
-2

我在stackoverflow這裏發現了這個bash腳本,它用bash解析了一個ini文件,而且效果很好。但我想將其轉換爲KSH但KSH運行時,它得到這個消息...用KSH解析INI文件

ini_test02.ksh [24]:EVAL:在第7行語法錯誤:`文件結束」意外

ini_test02.ksh [51]:cfg.section.DEFAULT:找不到[沒有這樣的文件或目錄]

你如何轉換這種成KSH腳本?

+0

您可以參考[Ksh手冊](http://www2.research.att.com/sw/download/man/man1/ksh.html)。請發佈你已經嘗試過的。 – konsolebox

+0

不知道從哪裏開始......只是嘗試使用ksh調用腳本/函數,這是返回的內容。也許它是eval而不是ksh,或者它是否由bash將function_name.section.section_name解釋爲函數名稱,而ksh在運行該函數時使用了它的面向對象功能? –

+0

我已經使用下劃線而不是句點將設置更改爲>> ini =($ {ini [*] /#\\ [/ \} $'\ n'cfg_section_}),並獲得相同的結果。 –

回答

0

如果你沒有很多變量,只是逐個解析它們。當值不包含等號下面可以做:

keyx="$(grep "^keyx=" my.ini | cut -d= -f2 | sed 's/ *$//')" 

或者把這個功能和呼叫像

keyx="$(readini my.ini keyx)" 
0

功能由於這是在谷歌上的搜索結果中的一個用ksh和INI解析我想指向https://github.com/wallyhall/shini用於KSH中的INI解析。

唯一需要做的就是實現函數__shini_parsed和可選的__shini_parsed_section。