2015-03-02 107 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.