linux - 是否可以在 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
解决方案
示例:将参数 5 设为可选。
您可以处理可选参数$5
,例如,通过获取其内容,
${5:-cockroach}
如果参数 5不存在或为空,则假定其值为cockroach。
如果用户想明确指定参数 4 和 6,并将参数 5 保留为默认值,则将空字符串作为第 5 个参数传递。
推荐阅读
- typescript - TypeScript:使用通用扩展?
- c# - 更改 WCF 参考网址 .Net Core
- javascript - JS中是否可以动态设置要解构的属性?
- typescript - 创建递归样式对象时的打字稿问题
- google-earth-engine - 如何从 Google 地球引擎导出图像集合?
- mule - 无法使用(`String`,`Array 调用`++`
`) - python-3.x - 使用连接字符串在 psycopg2 中创建连接池
- javascript - React - TypeError:无法读取未定义的属性“长度”
- excel - 如何在单元格中显示与单元格文本不同的文本?
- webpack - 我无法从其他设备上的本地网络访问 webpack 开发服务器