我有一个脚本,它接受多个选项作为参数。有效选项列表可能很大(>20),这可能导致冲突。是否有一种实用的方法可以将冲突的组组合在一起,并且不创建多个列表、组等而将非冲突的组组合到另一个组中。对一个组的更改将导致对其他组的更改。
例如,可用选项列表:
-a, -b, -c, -d
以下选项冲突:
[-a, -c], [-a, -d]
以下选项不冲突:
[-a, -b], [-c, -d]
编辑,一个更精确的例子:
例如,该脚本允许启动/停止特定任务,并具有用于创建/删除日志的其他选项。
正常的开始看起来像:
./script -start Task -logFile C:\out.tmp
如果出现以下情况,脚本应该通知用户:
./script -start Task -stop Task
执行,因为
start
和
stop
是两个相反的动作。
另一个冲突操作:
./sript -start Task -logFile C:\out.tmp -deleteLog C:\out.tmp
,它将创建一个日志文件并同时将其删除。
现在,如果选项是
start, stop, logFile, deleteLog
,
以下内容可能有冲突:
[start, stop], [logFile, deleteLog]
以下内容不会发生冲突:
[start, logFile], [stop, deleteLog]