首页 > 解决方案 > 是否可以在 shell 脚本中传递可选参数?

问题描述

我正在尝试为两个数据集运行 shell 脚本。我将数据集名称作为参数传递。

但是一个数据集有参数exec_seq而另一个没有,但是两个数据集的脚本是相同的。有什么方法可以传递可选参数吗?

例子:

我们有两个数据集:

AMPIL
MDM

我们正在使用以下命令运行脚本:

bash script.sh AMPIL
bash script.sh MDM

但现在我必须再传递一个参数,exec_seq. 此参数仅适用于 AMPIL 数据集,不适用于 MDM。我们如何检查是否没有传递参数,这意味着它应该为 MDM 运行,如果传递了任何参数,那么它应该为 AMPIL 运行?

bash script.sh AMPIL exec_seq
bash script.sh MDM

标签: linuxshellunix

解决方案


示例:将参数 5 设为可选。

您可以处理可选参数$5,例如,通过获取其内容,

${5:-cockroach}

如果参数 5不存在或为空,则假定其值为cockroach

如果用户想明确指定参数 4 和 6,并将参数 5 保留为默认值,则将空字符串作为第 5 个参数传递。


推荐阅读