【发布时间】:2018-01-31 01:27:51
【问题描述】:
是否可以使用 getops 强制运行脚本的用户添加选项?
我不是在问如何使一个选项需要一个参数(在选项后使用: 完成),而是如何实际告诉用户他需要在运行脚本时添加 -something。
类似myscript.sh -f FILENAME;如果用户以myscript.sh FILENAME 运行脚本,他会收到错误,因为他没有添加-f 选项。
现在我检查 $1 是否为空,以打印使用消息;以及另一个检查-f 选项是否在用户传递的语句中的语句;虽然如果你有 10 个选项,你会添加 10 个条件语句?感觉有点不对劲,效率也不高。
编辑: 再一次,我不是在问如何处理 getops 参数,而是在问选项本身。我认为这个问题很清楚地表明这与提到的可能重复这个问题的答案无关。
【问题讨论】:
-
@DavidC.Rankin 我不认为它是重复的;我在问如何强制用户输入 -[option],而不是如何强制他们输入选项的参数;它们是两个根本不同的东西。
-
对不起,但这看起来正是@glenn jackman 的回答。我看到了您所做的区别,强制使用
-foo选项而不是参数本身,但是当您分解它时,唯一的区别是您的输出是否抱怨缺少参数或缺少选项。 (意味着您只是标记是否接收到特定选项或参数并发出适当的警告) -
同意,区别在于您提到的程度,但在我的情况下,没有参数和没有选项同样糟糕,并且必须触发失败。我(错误地)假设 getops 会处理所有事情,但这是不正确的。感谢您的回复。
标签: bash