在bash中以非交互方式使用事件

时间:2013-10-04 21:37:46

标签: bash

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

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

P.S。任何人对此问题有更合适的标签有任何建议吗?是否有任何标签与Bash中的!事件指示符或类似内容有关?

1 个答案:

答案 0 :(得分:2)

您可以使用bash history内置的-p选项:

  

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

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

以上引用来自help history