bash - shell 脚本有很多命令行参数是不是很奇怪
问题描述
在我们的环境中,我们有近 30 个应用程序和 5 个环境。由于时间线问题,我们创建了5[env]*3[three scripts per env]*30[num of applications]
. 它是 450 个文件。
我们知道我们不必要地复制了代码。如果我们必须更改环境的某些挂载点位置,则必须在整个应用程序中进行更改。
所以我设计了一种方法,其中包含 3[所有应用程序的文件] + 2[具有应用程序特定方法的文件]。
它工作正常。但这里的问题是我们需要将 7 个参数传递给这三个脚本。
所以有一种说法说剧本怪诞繁琐。我想知道 bash 脚本的命令行参数的建议数量是多少。
我找不到与此相关的任何文档。但我提到了这个。它不能说服我。
有什么建议么?我真的需要为了 7 个参数而重新考虑设计吗?
注意:我做到了。我现在有一个包含 3-5 个参数的解决方案。但我想知道推荐的参数数量。
解决方案
如果脚本需要以特定顺序排列的七个特定的、不同的参数,那么——是的,我认为这太多了。和...之间的不同
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
更容易自信地使用(尤其是当参数丢失或出现两次时脚本给出明确的错误消息时)。
推荐阅读
- pine-script - TradingView pine-script 收益日之间的最高和最低
- python - Python zipfile 添加了不必要的父文件夹
- centos7 - 多ip和参数测试
- python - 如何使用 dask 分布式?
- javascript - 切换按钮以在单击时展开导航菜单
- git - git single 命令暂存所有和刚刚修改的文件
- matplotlib - 为什么 seaborn 样式在 matplotlib 中不起作用?
- django - (内部服务器错误)在 django web 推送通知上使用 heroku
- python - 我正在尝试加载 BERT“tfbert-large-uncased”,但出现错误“无法加载 config.json 文件”
- asp.net - .NET Entity Framework - 如何导出/导入完整对象图(实体及其所有子对象)