Python在中定義不是一種很好的語言,它定義了一組要運行的命令。 Bash是。但Bash不能在Windows上天真地運行。在Python中實現的便攜式命令執行語法
背景:我試圖建立一套程序 - 它們之間建立了依賴關係 - 在mac/win/linux上。像macports的東西,但應該在列出的所有三個平臺上工作。
此相生必要爲具有可被用於殼狀語言定義命令序列用於構建/修補/等。特定的程序運行,如:
post-destroot {
xinstall -d ${destroot}${prefix}/share/emacs/${version}/leim
delete ${destroot}${prefix}/bin/ctags
delete ${destroot}${prefix}/share/man/man1/ctags.1
if {[variant_isset carbon]} {
global version
delete ${destroot}${prefix}/bin/emacs ${destroot}${prefix}/bin/emacs-${version}
}
}
以上是來自emacs Portfile in macports。請注意使用變量,條件,函數..除了指定要按此順序執行的簡單命令列表。
儘管語法不是Python,但實際的執行語義必須使用子進程或其他方式推遲到Python。總之,我應該能夠'運行'這樣一個腳本..但是對於每個命令來說,一個指定的鉤子函數被調用,實際上運行任何作爲參數傳遞的命令。我希望你明白這個主意。
你在這裏要求什麼?建議設計?代碼片段?請更精確。 – Pinochle 2009-08-08 15:47:40
我不是要求輸入代碼片段;但關於如何實現或重新使用這樣的命令解釋器的想法(似乎macports使用Tcl) – 2009-08-08 15:57:32