2015-03-02 106 views
0

對於一些日常工作,我發現結合不同的腳本語言是最快的方法。就像我有一些主要的bash腳本,它們調用了一些awk,pyton和bash腳本,甚至一些編譯好的fortran可執行文件。多個可執行文件作爲單個文件

我可以將所有文件放入路徑中的文件夾,但它會使修改速度稍慢。如果我需要一些修改的新副本,我需要添加另一個路徑到$ PATH。

有沒有辦法將這些文件合併爲單個可執行文件?

例如:將所有文件集中在一起,並解釋主程序main.sh?這樣我就可以簡單地修改文件,修改,運行,修改,運行......但我可以輕鬆地在文件夾和機器之間移動文件。也可以正確處理依賴關係(執行tar可以設置PATH本身)。

我希望這個夢想確實存在!感謝您的評論!

亞諾什

+0

既然你正在使用bash,你可以有一個腳本中調用它們中的每一個,甚至管道它們。然而,我懷疑使用不同的語言來分割任務是最好的方法:最有可能的是,你可以找到一個好的方法來完成它。 – fedorqui 2015-03-02 15:47:09

回答

0

從一個軟件工程的角度,這種做法聽起來並不那麼大,因爲你的程序將受到嚴重的結構化設計(但也許這是你的情況沒有問題)。此外,在一個文件中組合多種語言時,編輯器中的語法高亮支持將會丟失。我寧願建議構建一個所有程序包,將它們分配在一起,並在部署後讓主腳本調用其他程序。也就是說,你可以在Bash中使用here documents,查看bash(1)(搜索「Here Documents」),在主腳本中包含其他文本腳本,然後讓主腳本將它們寫入臨時目錄並執行它們。儘管如此,這不會對編譯代碼有所幫助,除非在目標機器上有編譯器。

這個Linux Journal Article也許對你很有意思,因爲它展示瞭如何在Bash腳本中包含二進制有效負載(例如tgz文件)。您可以使用它將包含程序的壓縮存檔添加到永不改變的主腳本中。

0

感謝您的答案!

當然,這不是一個提供已發佈代碼的好方法!對不起,如果它很混亂。但是如果你正在開發一些例如,這是一個很好的方法。科學的想法,並且您希望快速獲得概念驗證結果,並且您希望多次執行類似的任務,但快速更換算法的某些部分。請注意,有時許多代碼可用於該任務的某些部分。這些代碼有時需要稍微修改(幾行)。我是一個重新實施一切的大信徒,但首先很高興知道它是否值得去做!

對於一些妥協:我可以調用一個外部腳本,它是用tar或zip包裹的,並且沒有壓縮?再次

感謝,

J.