多个可执行文件作为单个文件

时间:2015-03-02 15:44:38

标签: python bash scripting path packing

对于一些日常工作,我发现组合不同的脚本语言可能是最快的方法。就像我有一些主要的bash脚本,它会调用一些awk,pyton和bash脚本,甚至是一些编译好的fortran可执行文件。

我可以将所有文件放入路径中的文件夹中,但这会使修改速度变慢。如果我需要一些带有一些修改的新副本,我还需要为$ PATH添加另一条路径。

有没有办法将这些文件合并为一个可执行文件?

例如:将所有文件一起tar并解释主脚本是main.sh吗?这样我就可以简单地vi文件,修改,运行,修改,运行...但我可以轻松地在文件夹和机器之间移动文件。也可以正确处理依赖关系(执行tar可以设置PATH本身)。

我希望这个梦想确实存在!感谢您的评论!

亚诺什

2 个答案:

答案 0 :(得分:0)

从软件工程的角度来看,这种方法听起来并不是那么好,因为你的程序设计结构很糟糕(但在你的情况下也许没问题)。此外,在一个文件中组合多种语言时,您将失去编辑器中的语法突出显示支持。我宁愿建议建立一个包含所有程序的程序包,然后分发它们 一起,部署后主脚本调用其他程序。

话虽如此,您可以在Bash中使用here documents,请参阅bash(1)(搜索" Here Documents"),在主脚本中包含其他文本脚本,然后主脚本将它们写入临时目录并执行它们。但是,除非您的目标计算机上有编译器,否则这对您编译的代码没有帮助。

Linux Journal Article也可能对您有意义,因为它显示了如何在Bash脚本中包含二进制有效负载(例如tgz文件)。您可以使用它将包含程序的压缩存档添加到永不改变的主脚本中。

答案 1 :(得分:0)

感谢您的回答!

当然,这不是提供已发布代码的好方法!对不起,如果它令人困惑。但是如果你正在开发一些例如,这是一个很好的方法。科学的想法,你希望快速获得概念证明结果,你希望多次做类似的任务,但快速取代算法的某些部分。请注意,有时许多代码可用于任务的某些部分。这些代码有时需要稍微修改一下(几行)。我非常相信重新实现一切,但首先要知道它是否值得做好!

对于某些妥协:我可以在外部调用一些包含在某个tar或zip中并且未压缩的脚本吗?

再次感谢,

学家