用于编写调用其他几个脚本的包装脚本的模式?

时间:2011-09-26 18:47:40

标签: bash command-line-arguments

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

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

脚本二有一个-e参数,供用户指定发送错误的电子邮件地址。 脚本三具有相同的-t参数。 脚本一个-e参数意味着别的东西

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

我的问题是这些脚本现在紧密耦合 - 例如,某人出现,查看脚本二和三,并说“哦,我们应该使用相同的参数来查找电子邮件地址”,并更改-t到脚本三中的-e。脚本三本身工作正常但现在包装脚本已经坏了。

在这种情况下你会做什么?我在每个剧本的评论中都有一些很大的警告,但这让我感到困扰。我能想到的唯一另一件事是拥有一个巨大的单片脚本,我显然不会为此疯狂。

1 个答案:

答案 0 :(得分:0)

问题似乎是人们不假思索地改变底层脚本的API。您无法随意更改您知道其他人依赖的API。毕竟,可能不只是这个包装脚本要求脚本#3采用-t参数。所以答案似乎是:停止更改底层脚本