我正在尝试使用 GNU parallel 来针对几个行为改变标志的所有组合运行命令:
parallel 'cmd --foo {1} --bar {2} {3} out.foo={1}.bar={2}/{3/}' ::: 0 1 ::: 0 1 ::: in/*
这应该会产生一系列类似这样的调用:
cmd --foo 0 --bar 1 'in/fileXYZ' 'out.foo=0.bar=1/fileXYZ'
cmd --foo 1 --bar 0 'in/fileXYZ' 'out.foo=1.bar=0/fileXYZ'
但是,此工具的 CLI 不规则:--foo
接受布尔参数,--bar
而不接受参数(并且也没有否定形式)。因此,调用必须如下所示:
cmd --foo 0 --bar 'in/fileXYZ' 'out.foo=0.bar=1/fileXYZ'
cmd --foo 1 'in/fileXYZ' 'out.foo=1.bar=0/fileXYZ'
1
在 GNU parallel 中将或 的参数转换为命令行上的 的0
存在或不存在的最佳(最不冗长)方法是什么?--bar