问题
我有一个命令,为方便起见,我烦恼--
该命令,在调用该命令后,我很烦人需要使用它来指定一些其他参数。
以下面的示例为例,该命令称为foo
,别名称为run
:
alias run=foo --bar --baz
bar
并且baz
是始终存在的参数,因此它们在别名中。现在,我想调用该命令,它至少需要一个必需的参数,然后是附加的附加参数,这些附加参数继续执行选项ender --
。
具体来说,当我打电话时,我run
这样称呼它:
run file1 -- option1 option2
这是有效的,如预期的那样传递了选项1和2。
我想要什么
我可能想做的就是只有一个别名并运行以下命令,run file1 option1 option2
并让别名句柄将参数定位在之前或之后--
(将在别名中)。
潜在答案
我在这里遇到的困难是想出一种不涉及太多逻辑的解决方案。理想情况下,我只希望xargs
获得访问参数arguments1,然后再获得arguments1 + ...,但这似乎不是它的用途。我还可以做的东西cut
(cut -d' ' -p1
和cut -d' ' -f2-
两个工作,但那种线切割的可能不是最好的解决方案)。
我全都在这里寻求一个优雅的解决方案
恕我直言,使用shell函数而不是别名会更明智:
run() {
file="$1"
shift
foo --bar --baz "$file" -- "$@"
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句