首页 > 解决方案 > shell 脚本有很多命令行参数是不是很奇怪

问题描述

在我们的环境中,我们有近 30 个应用程序和 5 个环境。由于时间线问题,我们创建了5[env]*3[three scripts per env]*30[num of applications]. 它是 450 个文件。

我们知道我们不必要地复制了代码。如果我们必须更改环境的某些挂载点位置,则必须在整个应用程序中进行更改。

所以我设计了一种方法,其中包含 3[所有应用程序的文件] + 2[具有应用程序特定方法的文件]。

它工作正常。但这里的问题是我们需要将 7 个参数传递给这三个脚本。

所以有一种说法说剧本怪诞繁琐。我想知道 bash 脚本的命令行参数的建议数量是多少。

我找不到与此相关的任何文档。但我提到了这个。它不能说服我。

有什么建议么?我真的需要为了 7 个参数而重新考虑设计吗?

注意:我做到了。我现在有一个包含 3-5 个参数的解决方案。但我想知道推荐的参数数量。

标签: bashshell

解决方案


如果脚本需要以特定顺序排列的七个特定的、不同的参数,那么——是的,我认为这太多了。和...之间的不同

foo.sh fred wilma pebbles dino barney betty bamm-bamm

foo.sh fred wilma pebbles barney betty bamm-bamm dino

太微妙了;对编写脚本的人最有意义的参数顺序与对每个使用它的人最有意义的顺序不同。

但是,在许多情况下,您可以通过“命名”参数来改善这种情况(而不用担心顺序):

foo.sh \
    --father-1=fred --mother-1=wilma --child-1=pebbles --pet-1=dino \
    --father-2=barney --mother-2=betty --child-2=bamm-bamm

更容易自信地使用(尤其是当参数丢失或出现两次时脚本给出明确的错误消息时)。


推荐阅读