0

在 Bash 中,我想获取上次使用 command 时使用的参数foo。交互式地,我可以通过键入来使用事件指示符!foo:*。有没有办法以非交互方式使用事件,例如在函数中?我设法以这种方式获得了类似的效果,但它似乎非常hacky:

$(fc -s foo=echo foo 2> /dev/null)

PS有人对这个问题的更合适的标签有任何建议吗?是否有任何与!Bash 中的事件指示符有关的标签或类似的东西?

4

1 回答 1

2

您可以使用 bashhistory内置-p选项:

-p对每个 ARG 执行历史扩展并显示结果而不将其存储在历史列表中

例如:fooargs=$(history -p '!foo:*')

以上引用来自help history

于 2013-10-04T21:55:26.803 回答