目前我正在开发一个更大的 Bash 脚本(它是我的一个开源项目),它开始变得一团糟。我已将逻辑拆分为函数,尽可能使用局部变量,并且只声明了少数全局变量。尽管如此,它变得非常难以维护。
我考虑将脚本分成多个脚本并在我的主脚本中获取它们(类似于其他语言的导入)。
但我想知道这是否是一种可行的方法。首先,采购多个脚本可能会严重减慢脚本的执行时间,其次,它使分发变得更加困难。
那么,这是一个好方法吗,其他(开源)项目是否也这样做?
Jas*_*onG 16
在那个时候,shell 是适合这项工作的工具吗?作为一个遇到过代码增长问题的开发人员,我可以告诉你,不应该考虑重写,而是考虑将部分分离成更适合你希望扩展应用程序的规模的东西 - 可能是 python 或 ruby 甚至 perl ?
Shell 是一种实用语言 - 它是一种脚本语言 - 因此很难将其扩展到这些大小。
Kyl*_*nes 14
是的,这是一种常见的做法。例如,在 Unix 的早期,负责引导系统从引导阶段到多用户操作的 shell 代码是单个文件/etc/rc
. 今天,引导过程由许多 shell 脚本控制,按功能分解,通用功能和变量根据需要从中央位置获取。Linux 发行版、Mac、BSD 都在不同程度上采用了这种方法。
如果它使您的维护更容易,您可以同时拥有。将其拆分为逻辑部分,以便您可以轻松维护它,然后编写(例如)一个 Makefile 将其全部放回一起分发 您可以编写一些快速脚本将函数从包含文件复制到输出文件,以代替该source
行或只是做一些琐碎的这样的(你必须重新tabify这一点,因为make
需要标签):
all: myscript
myscript: includes/* body/*
cat $^ > "$@" || (rm -f "$@"; exit 1)
Run Code Online (Sandbox Code Playgroud)
然后您有一个“源”版本(用于编辑)和一个“二进制”版本(用于简单安装)。
归档时间: |
|
查看次数: |
8087 次 |
最近记录: |