或者功能,或其他任何事情。
我的用例是我运行的命令会在git存储库中为我找到分支名称,命令的唯一输出是分支名称,可以传递给git checkout
。然后我键入git checkout $(!!)
以实际执行结帐。我想要的是一个别名(不关心它是否是alias
对于git checkout $(!!)
实际有效。
我不希望单个命令找到分支并将其检出,因为我用来查找分支的命令可能会输出多个分支名称,在这种情况下,我会使用更具体的参数重新运行它。 (它是git branch -r | cut -d '/' -f 2- | grep
的别名。)
答案 0 :(得分:2)
{b}历史记录中的fc
内置数据提取(默认情况下,允许您编辑)上一个命令。使用fc -nl -1 -1
获取前一个命令(作为标准输出)。因此:
alias again='eval $(fc -nl -1 -1)'
使命令again
做你刚才做的任何事情,就像!!
一样。稍微修改一下,我们得到(修复,来自R. Woods):
alias xxx='git checkout $(eval $(fc -nl -1 -1))'
应该做的伎俩(不是我测试过的。)请注意,这是,而且必须是bash别名,而不是Git别名:Git无法访问shell&# 39; s历史(除了通过阅读文件,但不保证是最新的 - 或者我应该说,保证不是最新的,至少从bash文档我刚检查过。