或函数或其他任何东西。
我的用例是,我有一个命令,该命令可以为我找到GIT存储库中的分支名称,而命令的唯一输出是该分支名称,可传递给git checkout
。然后,我键入git checkout $(!!)
以实际执行结帐。我想要的是一个别名(不在乎git checkout $(!!)
的"真实" alias
(。
我不想要一个找到分支并将其检查出来的单个命令,因为我用来找到分支输出的命令可能会多个分支名称,在这种情况下,我会以更具体的参数重新运行它。(这是git branch -r | cut -d '/' -f 2- | grep
的别名。(
fc
内置提取物(默认情况下,允许您编辑(从bash历史记录中的上一个命令。使用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的历史记录(除了阅读文件,但不能保证这是最新的,或者我应该说,保证不是是最新的,至少是我刚刚检查的bash文档(。