【问题标题】:Pattern for writing a wrapper script which calls several other scripts?编写调用其他几个脚本的包装脚本的模式?
【发布时间】:2011-09-27 05:35:54
【问题描述】:

我有几个(bash)脚本,它们可以单独运行,也可以按顺序运行。我们称它们为一、二和三。它们需要一段时间才能运行,所以由于我们经常按顺序运行它们,所以我正在编写一个包装脚本来简单地按顺序调用它们。

我本身并没有遇到任何问题,但我意识到这是多么脆弱。例如:

脚本 2 有一个 -e 参数供用户指定将错误发送到的电子邮件地址。 脚本 3 对同一件事有一个 -t 参数。 script one 的 -e 参数有其他含义

我的包装脚本基本上解析三个下标的所有参数的并集,并且“做正确的事”。 (即它有自己的 args - 比如说 -e 用于电子邮件,并将其值传递给 -e arg 到第二个脚本,但传递给 -t arg 用于第三个脚本)。

我的问题是这些脚本现在是如此紧密耦合 - 例如,有人走过来,查看脚本 2 和 3,并说“哦,我们应该对电子邮件地址使用相同的参数”,然后更改 -t到脚本三中的 -e。脚本 3 本身可以正常工作,但现在包装脚本已损坏。

在这种情况下你会怎么做?我在每个脚本的 cmets 中有一些大的警告,但这让我很困扰。我唯一能想到的另一件事是拥有一个巨大的单体脚本,我显然也不喜欢它。

【问题讨论】:

  • 这听起来很企业化,但有哪些来源和变更控制流程?我的简短回答是:培训维护人员也编辑包装器。

标签: bash command-line-arguments


【解决方案1】:

问题似乎在于人们不小心更改了底层脚本的 API。您不能随意更改您知道其他人依赖的 API。毕竟,它可能不仅仅是这个包装脚本,它期望脚本#3 采用-t 参数。所以答案似乎是:停止更改底层脚本

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多