我刚刚遇到了这个问题:
couchy.py -H myhost-a version -E no connection --nagios
couchy.py
是我使用的工具getopt
。
请注意,调用参数中有一个错误:no connection
未引用(应该是"no connection"
),因此该-E
标志仅no
视为参数。更糟糕的是,还有一个令人讨厌的副作用:--nagios
标志未被处理。似乎与选项标志无关的第一个条目(在这种情况下connection
)停止标志处理。
结果,我的工具没有生成适合 nagios 的退出代码,只是一个正常的退出代码(在这种情况下0
),nagios 将其解释为OK: no error
,我错过了警报。
由于我经常犯这个错误(没有正确引用参数),我想避免副作用:有没有办法强制 getopt 处理所有标志,直到命令行结束?